Агрегировать по разнице уровней фактора в Pandas DataFrame? - PullRequest
0 голосов
/ 14 апреля 2020

Учитывая df1:

  A B C
0 a 7 x
1 b 3 x
2 a 5 y
3 b 4 y
4 a 5 z
5 b 3 z

Как получить df2, где для каждого значения в C из df1 новый col D имеет разницу между значениями df1 в col B где col A==a и где col A==b:

  C D
0 x 4
1 y 1
2 z 2

1 Ответ

0 голосов
/ 14 апреля 2020

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

df = df1.pivot_table(columns = ['A'],values = 'B', index = 'C')
df2 = pd.DataFrame({'D': df['a'] - df['b']})

Риск в ответе @YOBEN_S состоит в том, что он потерпит неудачу, если b появится раньше a для данного значения C

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...