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

Pandas 2.1中拆分含列表列的推荐方法咨询

Pandas 2.1中拆分含列表列的推荐方法咨询

嗨,我刚好也关注到Pandas 2.1这个更新带来的变化,来给你说说现在推荐的正确姿势~

你之前用的 df['column_with_lists'].apply(pd.Series) 这种拆分列表列的方式,在Pandas 2.1版本开始触发FutureWarning,官方明确说后续版本会移除这个用法,主要是因为它的执行效率和代码可读性都有优化空间。

现在官方更推荐的是两种更直接的方法:

方法一:直接用pd.DataFrame构造(首推)

把存储列表的列转成Python列表后,直接传入pd.DataFrame来生成拆分后的列,这是最高效且直观的方式:

# 生成拆分后的列DataFrame
split_df = pd.DataFrame(df['column_with_lists'].tolist(), index=df.index)
# 和原DataFrame合并(按需操作)
result_df = pd.concat([df, split_df], axis=1)

方法二:借助str方法扩展(适合特定场景)

如果你的列表元素是字符串类型,或者可以临时拼接成字符串再拆分,也可以用str.join配合str.split(expand=True)来实现:

split_df = df['column_with_lists'].str.join('|').str.split('|', expand=True)

不过这种方法需要额外的字符串拼接拆分操作,效率不如第一种,更推荐第一种方法。

需要注意的是,这两种方法和你之前的老方法行为一致:如果列中的列表长度不一致,缺失的位置会自动用NaN填充。

举个实际例子验证下:

import pandas as pd
df = pd.DataFrame({'column_with_lists': [[1,2,3], [4,5], [6]]})
split_df = pd.DataFrame(df['column_with_lists'].tolist(), index=df.index)
print(split_df)

输出结果:

0    1    2
0  1  2.0  3.0
1  4  5.0  NaN
2  6  NaN  NaN

完全符合预期,而且不会触发任何警告~

备注:内容来源于stack exchange,提问作者mrgou

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 12:58:02