【发布时间】:2022-01-21 17:17:12
【问题描述】:
我有这个DataFrame:
Age Hgt Wgt
x y x y x y
0 26 24 160 164 95 71
1 35 37 182 163 110 68
2 57 52 175 167 89 65
它是一个 MultiIndex DataFrame。
我正在使用pandas 来获得这个最终结果:
x_new y_new parameter
0 26 24 Age
1 35 37 Age
2 57 52 Age
3 160 164 Hgt
4 182 163 Hgt
5 175 167 Hgt
6 95 71 Wgt
7 110 68 Wgt
8 89 65 Wgt
基本上,所有x 列都合并/堆叠在一个新列x_new 下,y 列在y_new 列下。 x 值始终应采用相同原始和列的 y 值。
这是我尝试做的:
首先,加入列索引后,我使用melt()成为单索引'_'.join(col).strip()
它创建了额外的错误行。这些错误的行具有错误的值,例如:Age_x 和 Hgt_y 在同一行中。
请记住,例如:Age_x 和 Age_y 在同一行中。或者,Hgt_x 和 Hgt_y 在同一行。
第二,我用stack(),它给了我这样的结果:
df.stack().reset_index(level=0, drop=True).reset_index()
index Age Hgt Wgt
0 x 26 160 95
1 y 24 164 71
2 x 35 182 110
3 y 37 163 68
4 x 57 175 89
5 y 52 167 65
我不知道我还能做什么。
有没有办法使用简单的pandascode 将 MultiIndex DataFrame 转换为我正在寻找的最终结果?
【问题讨论】:
标签: python pandas dataframe multi-index columnsorting