我有一些如下所示的数据。
Group Item1 Value1 Item2 Value2 ……so on Val10
A apple 2 pears -4
B orange -5 banana 3
C grapes 6 apple -8
D pears 8 orange 1
我想要做的是仅生成 2 列作为 Item 和 Value,并将所有行信息放入这些列中,如下所示。
Group Item Value
A apple 2
A pears -4
B orange -5
B banana 3
C grapes 6
C apple -8
. . .
. . .
. . .
我尝试寻找解决方案,也尝试了 df.melt、pd.pivot_table 但无法达到预期的结果。能否请你帮忙 ? :)
pd.wide_to_long
:
>>> (pd.wide_to_long(df, stubnames=['Item', 'Value'], i='Group', j='id')
.droplevel('id').reset_index())
Group Item Value
0 A apple 2
1 B orange -5
2 C grapes 6
3 D pears 8
4 A pears -4
5 B banana 3
6 C apple -8
7 D orange 1