我希望将以下多级列 pandas 数据框转换为单值表。
初始表:
Name Monica Rachel
Paper 1 2 3 1 2 3
2018-01-01 13 33 15 31 25 33
2018-06-01 11 43 30 36 23 37
新要求的数据框表格式:
Index Name Paper Scores
2018-01-01 Monica 1 13
2018-01-01 Monica 2 33
2018-01-01 Monica 3 15
2018-06-01 Monica 1 11
2018-06-01 Monica 2 43
2018-06-01 Monica 3 30
2018-01-01 Rachel 1 31
2018-01-01 Rachel 2 25
2018-01-01 Rachel 3 33
2018-06-01 Rachel 1 36
2018-06-01 Rachel 2 23
2018-06-01 Rachel 3 37
我已经尝试了 3 个 for 循环,但无法多次复制索引值。
请您参考如下方法:
就像@Wen 所说的使用melt:
df.rename_axis('Index').reset_index().melt('Index', value_name='Score')
输出:
Index Name Paper Score
0 2018-01-01 m 1 13
1 2018-06-01 m 1 11
2 2018-01-01 m 2 33
3 2018-06-01 m 2 43
4 2018-01-01 m 3 15
5 2018-06-01 m 3 30
6 2018-01-01 r 1 31
7 2018-06-01 r 1 36
8 2018-01-01 r 2 25
9 2018-06-01 r 2 23
10 2018-01-01 r 3 33
11 2018-06-01 r 3 37
