【问题标题】:Pandas: subtract one column from another in a pivot table熊猫:从数据透视表中的另一列中减去一列
【发布时间】:2017-09-01 07:09:11
【问题描述】:

我想从数据透视表中的另一列中减去一列。 'diff' 应该是 2017 年和 2016 年之间的差异

raw_data = {'year': [2016,2016,2017,2017],
    'area': ['A','B','A','B'],
    'age': [10,12,50,52]}
df1 = pd.DataFrame(raw_data, columns = ['year','area','age'])

table=pd.pivot_table(df1,index=['area'],columns=['year'],values['age'],aggfunc='mean')

table['diff']=table['2017']-table['2016']

【问题讨论】:

    标签: python pandas pivot pivot-table multi-index


    【解决方案1】:

    您需要删除pivot_table 中的[],以免在列中创建MultiIndex

    table=pd.pivot_table(df1,index='area',columns='year',values='age',aggfunc='mean')
    print (table)
    year  2016  2017
    area            
    A       10    50
    B       12    52
    
    table['diff']=table[2017]-table[2016]
    print (table)
    year  2016  2017  diff
    area                  
    A       10    50    40
    B       12    52    40
    

    另一个可能的解决方案是droplevel:

    table=pd.pivot_table(df1,index=['area'],columns=['year'],values=['age'],aggfunc='mean')
    table.columns = table.columns.droplevel(0)
    print (table)
    year  2016  2017
    area            
    A       10    50
    B       12    52
    

    【讨论】:

      猜你喜欢
      • 2013-12-04
      • 1970-01-01
      • 2019-02-12
      • 2019-08-07
      • 2020-12-30
      • 1970-01-01
      • 2023-01-25
      • 1970-01-01
      • 2014-06-10
      相关资源
      最近更新 更多