熊猫2x2差异表

时间:2018-10-01 03:22:26

标签: python pandas

我想在大熊猫上做一张这样的桌子:

difference table

我从这样的数据透视表开始:

# 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

但是在添加差异行和列时遇到了麻烦。是否有直接的方法可以将差异作为数据透视表的页边距添加?

1 个答案:

答案 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