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

如何在pandas DataFrame的每一行新增同一列表作为新列?

在Pandas DataFrame每行添加相同列表作为新列的方法

你已经搞定了添加单一值列和不同值列的操作,现在要给每行都加同一个列表作为新列,其实很简单,这里给你两种靠谱的实现方式,还会帮你避开容易踩的坑:

方法1:列表推导式(推荐,避免引用问题)

如果你想给每行都添加[4,5,6]这类固定列表,直接用列表推导式生成对应长度的列数据就行——这样每行的列表都是独立的对象,后续修改某一行的列表不会影响其他行:

# 假设你的目标列表是[4,5,6]
foo['col5'] = [[4,5,6] for _ in range(len(foo))]

执行后你的DataFrame会变成:

col1  col2  col3 col4    col5
0     1     0     1    a  [4,5,6]
1     2     0     1    b  [4,5,6]
2     3     1     1    c  [4,5,6]

方法2:使用apply方法

用apply遍历每行并返回目标列表,代码可读性也不错:

foo['col5'] = foo.apply(lambda x: [4,5,6], axis=1)

执行后效果和上面完全一致。

要避开的坑

  • 别直接写foo['col5'] = [4,5,6],这会让pandas把列表的每个元素分别赋值给每行,结果col5会变成4,5,6,不是你想要的整列表格式。
  • 也别用foo['col5'] = [[4,5,6]] * len(foo),虽然表面看起来正确,但所有行的列表其实是同一个引用——比如你修改其中一行的列表,所有行的列表都会跟着变,这大概率不是你想要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:23:17