我有一个 Dataframe 的形式:
name 0 1 2
0 A 4 2 1
1 B 2 3 4
2 C 1 3 2
这是我在真实的世界数据处理中对数据进行分组和汇总的结果。现在我想做的是展开(分解?)每行,使该行中的每个元素填充与列标题对应的多行(name
除外),这样 Dataframe 就像这样结束:
name 0 1 2
------------------
A 0 1 2
A 0 1 nan
A 0 nan nan
A 0 nan nan
B 0 1 2
B 0 1 2
B nan 1 2
B nan nan 2
C 0 1 2
C nan 1 2
C nan 1 nan
我已经尝试了很多关于df.iterrows()
的东西,给一个空的 Dataframe 分配新的列,每一行的长度都是max
,然后用nans
填充,但是结果是错误百出,非常混乱。如果你们PandasMaven能看一看就太好了。谢谢你的建议!
可再现 Dataframe
import pandas as pd
df = pd.DataFrame({'name': ['A','B','C'], 0:[4,2,1], 1:[2,3,3], 2:[1,4,2]})
1条答案
按热度按时间2vuwiymt1#
您可以重复您的行,直到每个原始行的最大数目,然后使用numpy broadcasting来屏蔽不需要的值:
输出:
中间体: