我试图将同一列中各个组的两列值相乘: * MtM =今天的交易量*(今天的价格-昨天的价格)*
我可以使用基于行的公式来执行此操作,但是它非常慢。有没有一种方法可以使用向量化运算来计算?
biz_data = {
'business_id': ['1', '2', '3', '1', '2', '3', '1', '3', '1', '3'],
'volume': [20, 25, 25, 20, 26, 24, 25, 21, 21, 26],
'price': [10, 11, 10, 12, 15, 16, 10, 12,14, 10]}
results = pd.DataFrame(biz_data, columns = ['business_id','volume','price'])
results
我现在进行计算的方式是:
def mtm (x):
x['mtm'] = x['volume'] * x['price'].diff(periods = -1)
return x
results.groupby(['business_id']).apply(mtm)
我的数据集有10万多行,因此操作非常缓慢。 有矢量化方法吗?