修改数据集的行和列

问题描述

我有这样的数据

category | Sub-category | Variable | 1990 | 1991 | 1992
C1        sc1               v1         1      2      3
                            v2         4      5      6
                            v3         7      8      9
          sc2               v1         10     11     12
                            v2         13     14     15
                            v3         16     17     18

我想将其转换为此

    category | Sub-category | Variable | year | vals
       C1        sc1            v1       1990    1
                                         1991    2
                                         1992    3
                                V2       1990    4
                                         1991    5
                                         1992    6
                                V3       1990    7
                                         1991    8
                                        `1992`   9
and so on

如何在python[&;/或EXCEL]中执行此操作?


解决方案

在Python中,您可以使用melt函数(来自 pandas 库)。

Pandas.melt()将DataFrame从宽格式取消透视为长格式。

melt()函数用于将DataFrame转换为一种格式,其中一列或多列是标识符变量,而所有其他被视为度量变量的列被取消透视到行轴,只剩下两个非标识符列:Variable和Value。

用法:

pd.melt(x, id_vars=['category', 'Sub-category','Variable'], var_name='year', value_name='vals')

相关文章