使用分组依据并创建CSV

时间:2019-05-22 17:21:53

标签: python python-3.x pandas csv group-by

我有一个df,需要进行计算。 volume.shift(1)+增加的音量-音量=总音量 当我只有一个产品ID时,这对我有用 现在,我想将其应用于具有多个产品ID的DF。 另外,完成后,我需要生成一个csv。 我尝试了一个小组,但计算似乎没有加起来 而且我无法输出csv。我收到此错误:

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

当我有一个产品ID时,此代码将进行正确的计算:

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匹配时进行总体积计算。我正试图通过呼叫group by来做到这一点。

我最大的问题是在调用group by之后创建了一个csv。

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

1 个答案:

答案 0 :(得分:2)

我将更新原始数据框并保存:

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")