Skip to main content
 首页 » 编程设计

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

2025年05月04日11powertoolsteam

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