【问题标题】:Stacking dataframe columns (Pandas)堆叠数据框列(熊猫)
【发布时间】:2017-07-28 14:27:28
【问题描述】:

我正在寻找一种反向旋转数据框的方法。据我所知,pandas 提供了一种 pivot 或 pivot_table 方法来将 EAV df 转换为“正常”的。但是,是否也有相反的方法?

所以给定数据框:

$df userid A B C 0 1 1 0 1 1 3 1 2 1 5 0

我想将其转换为(EAV 模型):

$df E A V
0 A 1 0 B 1 0 C 0 1 A 1 1 B 3 1 C 1 2 A 1 2 B 5 2 C 0

这样做最有效的方法是什么?

【问题讨论】:

    标签: python pandas pivot-table entity-attribute-value


    【解决方案1】:

    假设userid 是索引,df.stack 会这样做:

    In [133]: df.stack().reset_index().rename(columns={'userid' : 'E', 'level_1' : 'A', 0 : 'V'})
    Out[133]: 
       E  A  V
    0  0  A  1
    1  0  B  1
    2  0  C  0
    3  1  A  1
    4  1  B  3
    5  1  C  1
    6  2  A  1
    7  2  B  5
    8  2  C  0
    

    如果userid不是索引,设置如下:

    df.set_index('userid', inplace=True)
    

    【讨论】:

      猜你喜欢
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 2019-05-10
      相关资源
      最近更新 更多