修改数据集的行和列

Modifying Rows & columns of a dataset

我有这样的数据

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 转换为一种格式,其中一列或多列是标识符变量,而所有其他列(被视为测量变量)都与行轴无关,只留下两个非-标识符列、变量和值。

用法:

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