将数据框列中的列表拆分为多列[重复]
Posted
技术标签:
【中文标题】将数据框列中的列表拆分为多列[重复]【英文标题】:Split lists within dataframe column into multiple columns [duplicate] 【发布时间】:2018-10-31 22:40:47 【问题描述】:我有一个 Pandas DataFrame 列,其中包含多个列表。像这样的:
df
col1
0 [[1,2], [2,3]]
1 [[a,b], [4,5], [x,y]]
2 [[6,7]]
我想将列表拆分为多列,所以输出应该是这样的:
col1 col2 col3
0 [1,2] [2,3]
1 [a,b] [4,5] [x,y]
2 [6,7]
请帮我解决这个问题。在此先感谢
【问题讨论】:
【参考方案1】:你可以使用pd.Series.apply
:
df = pd.DataFrame('col1': [[[1, 2], [2, 3]],
[['a', 'b'], [4, 5], ['x', 'y']],
[[6, 7]]])
res = df['col1'].apply(pd.Series)
print(res)
0 1 2
0 [1, 2] [2, 3] NaN
1 [a, b] [4, 5] [x, y]
2 [6, 7] NaN NaN
【讨论】:
【参考方案2】:如果性能很重要,我认为需要DataFrame
构造函数:
df = pd.DataFrame(df['col1'].values.tolist())
print (df)
0 1 2
0 [1, 2] [2, 3] None
1 [a, b] [4, 5] [x, y]
2 [6, 7] None None
如果需要删除NaN
s - 缺失值首先添加dropna
:
df = pd.DataFrame(df['col1'].dropna().values.tolist())
【讨论】:
以上是关于将数据框列中的列表拆分为多列[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Pandas使用split函数基于指定分隔符拆分数据列的内容为列表设置expand参数将拆分结果列表内容转化为多列数据并添加到原数据中replace函数基于正则表达式替换字符串数据列中的匹配内容