我的问题可能有点令人困惑,所以让我解释一下。我有一个信息数据框,希望将其按唯一的订单ID分组,这将产生以下列:
sum qty =每个订单ID执行的总金额。csv =这是每个订单ID的csv列的总和除以订单ID执行量的总和。
第一列很容易使用groupby创建,这是我遇到问题的第二列。这是我正在使用的示例数据:
qty sym price ordrefno ord_bidprice ord_askprice csv
0 -25000 TEST 0.044 984842 0.0435 0.044 12.5
1 100 TEST 0.0443 984702 0.0435 0.044 0.03
2 -10000 TEST 0.0405 983375 0.039 0.0405 15
3 -100 TEST 0.0443 984842 0.0435 0.044 0.03
这是我的代码:
cs1 = lambda x: np.sum(test.csv / test.qty)
f2 = {'qty' : ['sum'], 'csv' : {'es' : cs1}}
agg_td = trades.groupby('ordrefno').agg(f2)
编写命名函数并使用apply
作品:
def func(group):
sum_ = group.qty.sum()
es = (group.csv / group.qty).sum()
return pd.Series([sum_, es], index=['qty', 'es'])
trades.groupby('ordrefno').apply(func)
结果:
qty es
ordrefno
983375 -10000 -0.0015
984702 100 0.0003
984842 -25100 -0.0008
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句