【问题标题】:Pivot Table in Pandas DataFrame - Make rows to columnsPandas DataFrame 中的数据透视表 - 将行变为列
【发布时间】:2021-10-14 08:44:26
【问题描述】:

所以我有一个数据框,其中州是美国州代码,年份列具有该特定州的值,数据框具有所有州的值,有没有一种方法可以使我有一个“所有年份的“年份”列,值仅在一列中。

My current dataframe :

STATE YEAR2021 YEAR2022 YEAR2023 ....
XX        XX       XX       XX

Desired DataFrame:

STATE YEAR VALUE
XX    2021  XX
XX    2022  XX
XX    2023  XX

如何在 python 中实现这一点?

【问题讨论】:

    标签: python pandas dataframe data-science pivot-table


    【解决方案1】:

    您可以使用以下内容:

    df2 = (df.set_index('STATE')
             .stack()
             .reset_index()
             .rename(columns={'level_1': 'YEAR',
                              0: 'VALUE'})
          )
    df2['YEAR'] = df2['YEAR'].str[4:]
    

    输入:

      STATE YEAR2021 YEAR2022 YEAR2023
    0    AA       XX       YY       ZZ
    

    输出:

      STATE  YEAR VALUE
    0    AA  2021    XX
    1    AA  2022    YY
    2    AA  2023    ZZ
    

    【讨论】:

    • 就像一个魅力,我稍后会剖析它,但如果你能解释它会很棒。
    • 我建议您逐个运行管道中的每个步骤以查看进度。总而言之,关键步骤是stack,它将列移动到行,其余的都是附属的。
    猜你喜欢
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 2013-03-12
    相关资源
    最近更新 更多