You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Pandas DataFrame新增每行均为相同列表的列?

在Pandas DataFrame中添加每行都是同一列表的新列

嘿,这个问题我熟!你遇到的是Pandas赋值时的广播逻辑问题——直接把列表赋值给新列的话,Pandas会默认把列表拆成单个元素去匹配每行,而不是把整个列表作为每个单元格的值。想要实现你要的效果,有几种简单的方法:

方法1:重复列表生成新列

最直接的方式是生成一个包含len(df)个目标列表的新列表,再赋值给新列:

import pandas as pd

df = pd.DataFrame(data={"A": [1, 2, 3], "B": ["x", "y", "z"]})
list_ = [1,2,3]

# 生成和DataFrame行数一致的列表,每个元素都是目标列表
df['new_col'] = [list_] * len(df)

运行后就能得到你想要的结果:

A  B    new_col
0  1  x  [1, 2, 3]
1  2  y  [1, 2, 3]
2  3  z  [1, 2, 3]

方法2:用pd.Series构造列

也可以用pd.Series直接构造这个新列,逻辑和方法1一致:

df['new_col'] = pd.Series([list_] * len(df))

注意:列表引用 vs 独立副本

上面两种方法中,新列的所有单元格都指向同一个列表对象。如果之后你修改这个列表(比如list_.append(4)),所有单元格的内容都会跟着变。如果需要每个单元格的列表是独立的副本,不会互相影响,可以用列表推导式生成副本:

df['new_col'] = [list_.copy() for _ in df.index]

这样修改其中一个单元格的列表时,其他单元格不会受到影响。

内容的提问来源于stack exchange,提问作者jam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:12:10