我想在大熊猫上做一张这样的桌子:
我从这样的数据透视表开始:
# Create data.
df = pd.DataFrame({
'treatment': [True, False, True, False],
'young': [True, True, False, False],
'val': [10, 5, 8, 12]
})
# Pivot.
df.pivot_table('val', 'treatment', 'young')
# young False True
# treatment
# False 12 5
# True 8 10
但是在添加差异行和列时遇到了麻烦。是否有直接的方法可以将差异作为数据透视表的页边距添加?
答案 0 :(得分:0)
diff
在这里可以提供帮助:
# Save the pivot table as we'll use it later.
p = df.pivot_table('val', 'treatment', 'young')
# Add the diff row.
p.loc['diff'] = p.diff().iloc[1]
# Add the diff column.
p['diff'] = p.diff(axis=1).iloc[:, 1]
p
# young False True diff
# treatment
# False 12.0 5.0 -7.0
# True 8.0 10.0 2.0
# diff -4.0 5.0 9.0