每组的熊猫列计算

时间:2019-05-16 19:12:09

标签: pandas dataframe pandas-groupby

我试图将同一列中各个组的两列值相乘:  * 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万多行,因此操作非常缓慢。 有矢量化方法吗?

0 个答案:

没有答案