【发布时间】:2020-06-18 17:11:39
【问题描述】:
我已经使用 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
我想添加一列显示各列之间的百分比差异:(OB RPC 值/无 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
【问题讨论】:
-
df['OB RPC'].div(df['No RPC']) - 1有什么问题? -
@Datanovice 'OB RPC' 是
df['rpc_flag']中的值,而不是数据框中的列。我认为如果我想向数据框添加一个新列或在数据框行上计算,但不是作为 groupby 输出中的新列,这将起作用。注意:推测,因为我是这里的初学者。
标签: python pandas python-2.x