Использование Group by и создание CSV - PullRequest
2 голосов
/ 22 мая 2019

У меня есть df, где мне нужно сделать расчет. volume.shift (1) + добавленный объем - объем = общий объем Это работает для меня, когда у меня есть только один идентификатор продукта Теперь я хочу применить это к DF с несколькими идентификаторами продукта. Плюс мне нужно создать CSV, когда я закончил. Я попробовал группу, но вычисления, кажется, не складываются и я не могу вывести CSV. Я получаю эту ошибку:

Cannot access callable attribute 'to_csv' of 'DataFrameGroupBy' objects, try using the 'apply' method

когда у меня есть один идентификатор продукта, этот код делает правильные вычисления:

df['TOTAL_VOLUME'] = df['VOLUME'].shift(-1) + df['ADDED_VOLUME'] - df['VOLUME']

df = data.groupby('PRODUCT_ID')

df['TOTAL_VOLUME'] = df['VOLUME'].shift(-1) + df['ADDED_VOLUME'] - df['VOLUME']

df.to_csv(r"C:\Desktop\total volume.csv")

Что я хотел бы сделать, так это рассчитать общий объем, но только при совпадении PRODUCT_ID Я пытаюсь сделать это с помощью вызова группы по.

Моя самая большая проблема - создание csv после вызова group by.

Cannot access callable attribute 'to_csv' of 'DataFrameGroupBy' objects, try using the 'apply' method

1 Ответ

2 голосов
/ 22 мая 2019

Я бы обновил исходный фрейм данных и сохранил бы его:

data['shifted_volumn'] = data.groupby('PRODUCT_ID')['VOLUME'].shift()
data['TOTAL_VOLUME'] = data['shifted_volumn'] + data['ADDED_VOLUME'] - data['VOLUME']

data.to_csv(r"C:\Desktop\total volume.csv")
...