我有一个数据集,其中包含两列中的值列表。我需要 A 列列表中的值成为新的列名,B 列列表中的值成为相应的行值。
我的数据集如下所示:
A B
----------------------------------------------------
0 [alpha, alpha2, alpha3] [betha, betha2, betha3]
1 [alpha, alpha2, alpha3] [betha, betha2, betha3]
2 [alpha, alpha3] [betha, betha3]
我需要得到像这样的数据集:
alpha alpha2 alpha3
-------------------------------
0 betha betha2 betha3
1 betha betha2 betha3
2 betha None betha3
感谢帮助,我的想法已经用完了。 提前致谢。
最佳答案
如果列表对的长度始终相同:explode
(pandas 0.25+)+ pivot
。对于不同的长度,您可以在爆炸 (groupby(level=0).cumcount()
) 之后向索引添加一个 cumcount
级别,以便它们对齐,尽管您在这种情况下,您需要决定对齐意味着什么。
df1 = (pd.concat([df.explode(x)[x] for x in ['A', 'B']], 1)
.pivot(columns='A', values='B')
.rename_axis(None, axis=1))
alpha alpha2 alpha3
0 betha betha2 betha3
1 betha betha2 betha3
2 betha NaN betha3
关于python - 如何创建新的列名并从其他列的列表中填充行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57965148/