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

如何向Pandas DataFrame列中的数组元素追加单个值

问题原因

你初始化c列时使用了df1["c"] = [[]] * df1.shape[0]的写法,该写法生成的所有列表是同一个列表对象的引用,所有行的c列都指向内存中的同一个列表,因此修改任意一行的列表,所有行的结果都会同步变化。

解决方法

1. 修正空列表列的初始化逻辑

将初始化代码替换为列表推导式,生成多个独立的空列表:

import pandas as pd

df1 = pd.DataFrame({'a':[0,1,2], "b": [3, 4, 6]})
# 用列表推导式生成独立空列表
df1["c"] = [[] for _ in range(df1.shape[0])]

2. 追加目标元素

可以直接定位目标行的列表执行追加,推荐用at方法避免pandas链式索引警告:

df1.at[2, "c"].append(1)

执行后输出结果如下,符合预期:

a  b    c
0  0  3   []
1  1  4   []
2  2  6  [1]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:45:05