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

Pandas:如何将列中列表元素拆分为独立列?

Pandas拆分列表列为独立列的实现方法

问题场景

现有如下Pandas DataFrame:

import pandas as pd

data = {
    'a' : [['Foo', 49.51, -120.69], ['Foo', 49.51, -120.69], ['Foo', 49.51, -120.69], ['Foo', 49.51, -120.69]],
    'b' : [['YLK', 44.48, -79.55], ['HG76', 44.60, -65.76], ['DEF', 49.52, -113.99], ['YXZ', 47.96, -84.78]],
    'c' : [1628.931942, 1949.748061, 2556.622213, 301.193418]
}

df = pd.DataFrame(data)

对应的初始结构:

a                       b                       c
0   [Foo, 49.51, -120.69]   [YLK, 44.48, -79.55]    1628.931942
1   [Foo, 49.51, -120.69]   [HG76, 44.6, -65.76]    1949.748061
2   [Foo, 49.51, -120.69]   [DEF, 49.52, -113.99]   2556.622213
3   [Foo, 49.51, -120.69]   [YXZ, 47.96, -84.78]    301.193418

需要将a、b列中的列表元素拆分为独立列,最终得到如下结构:

a     b       c         d       e        f         g
0   Foo   49.51   -120.69   YLK     44.48    -79.55    1628.931942
1   Foo   49.51   -120.69   HG76    44.6     -65.76    1949.748061
2   Foo   49.51   -120.69   DEF     49.52    -113.99   2556.622213
3   Foo   49.51   -120.69   YXZ     47.96    -84.78    301.193418

实现方法

通过pd.DataFrame将列表列展开为多列,再与原DataFrame的剩余列拼接即可,完整代码如下:

# 拆分a列,指定对应列名
a_split = pd.DataFrame(df['a'].tolist(), columns=['a', 'b', 'c'])
# 拆分b列,指定对应列名
b_split = pd.DataFrame(df['b'].tolist(), columns=['d', 'e', 'f'])
# 拼接所有部分,原c列重命名为g避免冲突
result = pd.concat([a_split, b_split, df['c'].rename('g')], axis=1)

print(result)

执行后就能得到目标格式的DataFrame。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:41:07