Расчеты столбцов панд для каждой группы - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь умножить значения двух столбцов для разных групп в одном столбце: * 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)

В моем наборе данных более 100 тысяч строк, поэтому работа идет очень медленно. Есть ли способ векторизовать его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...