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

如何在Python中为DataFrame添加由空列表组成的列?

在Pandas DataFrame中新增含独立空列表的列

没问题,这事儿挺常见,但得注意一个容易踩的坑——别直接用重复的空列表赋值,不然所有行的列表都会共享同一个引用,改一个全变。下面给你两种靠谱的实现方法:

方法1:列表推导式(推荐,效率更高)

用列表推导式为每一行生成独立的空列表,确保每个列表都是完全独立的对象:

import pandas as pd

# 先拿个10行的示例DataFrame举例子
df = pd.DataFrame({'existing_column': range(10)})

# 新增列,每个元素都是独立空列表
df['new_list_column'] = [[] for _ in range(len(df))]

方法2:apply函数(逻辑更直观)

如果觉得列表推导式有点抽象,用apply逐行生成空列表也可以,可读性更强:

df['new_list_column'] = df.apply(lambda _: [], axis=1)

避坑提醒:千万别这么写!

很多人一开始会想偷懒用[[]]*len(df),但这会导致所有行的列表共享同一个内存引用——你给某一行的列表加元素,所有行的列表都会跟着变:

# 错误示范!
df['bad_list_column'] = [[]]*len(df)
df.loc[0, 'bad_list_column'].append('oops')
print(df['bad_list_column'])  # 所有行的列表里都有'oops',这绝对不是你想要的

后续追加元素的用法

新增列之后,你可以直接通过loc定位行,给对应的列表追加元素:

# 给第2行(索引为1)的列表追加单个元素
df.loc[1, 'new_list_column'].append('first item')

# 给第5行(索引为4)的列表追加多个元素
df.loc[4, 'new_list_column'].extend([100, 200, 300])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 15:27:27