Python将多列数据帧转换为单值表数据帧
我希望将下面的多级列dataframe转换为单值表 初始表格:Python将多列数据帧转换为单值表数据帧,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我希望将下面的多级列dataframe转换为单值表 初始表格: 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
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循环,但无法重复索引值那么多次 将其放入数据框,然后按名称和纸张分组 新建表格=表格.groupby(['Name','Paper'])]
stack
和reset\u index
与@Wen声明的一样,使用
熔融
:
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
unstack呢?df.reset_index().melt('index'))
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