Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python将多列数据帧转换为单值表数据帧_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python将多列数据帧转换为单值表数据帧

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

我希望将下面的多级列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  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