Я создал таблицу с помощью 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 ответ
Используйте применить.
DMM_pivot["Change"] = DMM_pivot.apply(lambda x: x["OB RPC"]/x["No RPC"] -1, axis=1)
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.