【问题标题】:Should I stack, pivot, or groupby?我应该堆叠、旋转还是分组?
【发布时间】:2020-04-19 15:59:47
【问题描述】:

我仍在学习如何使用数据框,但仍然无法做到这一点...我得到了这样的数据框:

A  B  C  D1 D2 D3
1  2  3  5  6  7 

我需要它看起来像:

A  B  C  DA D 
1  2  3  D1 5 
1  2  3  D2 6 
1  2  3  D3 7 

我知道我应该使用 groupby 之类的东西,但我仍然找不到好的文档。

【问题讨论】:

    标签: python-3.x pandas pandas-groupby pandas-datareader


    【解决方案1】:

    这是wide_to_long

    ydf=pd.wide_to_long(df,'D',i=['A','B','C'],j='DA').reset_index()
    ydf
       A  B  C  DA  D
    0  1  2  3   1  5
    1  1  2  3   2  6
    2  1  2  3   3  7
    

    【讨论】:

      【解决方案2】:

      使用melt:

      df.melt(['A','B','C'], var_name='DA', value_name='D')
      

      输出:

         A  B  C  DA  D
      0  1  2  3  D1  5
      1  1  2  3  D2  6
      2  1  2  3  D3  7
      

      使用set_indexstack

      df.set_index(['A','B','C']).stack().reset_index()
      

      输出:

         A  B  C level_3  0
      0  1  2  3      D1  5
      1  1  2  3      D2  6
      2  1  2  3      D3  7
      

      而且,您可以通过重命名列标题等来做家务......

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-26
        • 2011-07-06
        • 2021-07-09
        • 2012-03-31
        • 2014-12-03
        • 2019-09-16
        • 2018-05-15
        • 2010-10-08
        相关资源
        最近更新 更多