Я создал таблицу с помощью pandas.groupby, но хочу добавить столбец, который выполняет вычисления по столбцам в выводе groupby. Вот мой код (я использую Python 2) и результат:

DMM_pivot = df.query('rpc_flag != "IB RPC"').groupby(['rpc_flag', 'DMM_type'])
DMM_pivot = DMM_pivot['number_accounts'].sum().unstack('rpc_flag').fillna(0)
DMM_pivot = DMM_pivot.apply(lambda x: x / x.sum()).round(2)  # Show percentage of total
print DMM_pivot

rpc_flag  No RPC  OB RPC
DMM_type                
Bad         0.34    0.25
Good        0.66    0.75

Я хочу добавить столбец, который показывает процентную разницу между столбцами: (значение ON RPC / значение No RPC - 1) и ожидаю следующих результатов:

rpc_flag  No RPC  OB RPC   Change
DMM_type                
Bad         0.34    0.25    -0.26
Good        0.66    0.75     0.14
1
HokieSpider 18 Июн 2020 в 20:11

1 ответ

Лучший ответ

Используйте применить.

DMM_pivot["Change"] = DMM_pivot.apply(lambda x: x["OB RPC"]/x["No RPC"] -1, axis=1)
0
Igor Rivin 18 Июн 2020 в 17:17