从熊猫列中的列表创建多列[重复]

Posted

技术标签:

【中文标题】从熊猫列中的列表创建多列[重复]【英文标题】:Create multiple columns from a list in pandas column [duplicate] 【发布时间】:2019-12-23 21:33:29 【问题描述】:

我有一个数据框,我想从其中一列的列表中创建 5 列

例子:

df :

ID             Data
1               ['A1','A2','A3','A4','A5']
2               ['A2','A3','A4','A5']

请注意,这里很少有列表少于 5 列,因为这些列在该位置插入 NAN。

Output df:
ID     Col1     Col2    Col3    Col4    Col5     Data 
1      A1        A2      A3      A4      A5      ['A1','A2','A3','A4','A5']
2      A2        A3      A4      A5      Nan     ['A2','A3','A4','A5']

【问题讨论】:

【参考方案1】:
df = pd.DataFrame(
    'ID': [1, 2],
    'Data': [['A1','A2','A3','A4','A5'], ['A2','A3','A4','A5']]
)

df.join(df['Data'].apply(pd.Series))

输出:

    ID  Data                            0   1   2   3   4
0   1   ['A1', 'A2', 'A3', 'A4', 'A5']  A1  A2  A3  A4  A5
1   2   ['A2', 'A3', 'A4', 'A5']        A2  A3  A4  A5  NaN 

【讨论】:

apply(pd.Series) 是您在pandas 中应该避免的事情之一,它比欺骗链接中的解决方案慢很多倍。 @Erfan 我去看看,谢谢 虽然语法更简洁

以上是关于从熊猫列中的列表创建多列[重复]的主要内容,如果未能解决你的问题,请参考以下文章

熊猫:将列中的列表拆分为多行[重复]

将数据框列中的列表拆分为多列[重复]

根据熊猫中多列的条件(最大值)替换列中的值

熊猫根据索引标签选择特定列中的值[重复]

从两个熊猫系列(csv的列作为DataFrame)创建元素字典

计算熊猫列中的重复次数[重复]