2017-04-06 70 views
1

我想從數據透視表的另一列中減去一列。 '差異' 768,16是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'] 

回答

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