Таблица разностей 2x2 в пандах - PullRequest
0 голосов
/ 01 октября 2018

Я бы хотел создать такую ​​таблицу в пандах:

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 голосов
/ 01 октября 2018

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...