【发布时间】:2019-10-09 05:57:34
【问题描述】:
我有一个需要计算的 df。 volume.shift(1) + 增加的音量 - 音量 = 总音量 当我只有一个产品 ID 时,这对我有用 现在我想将其应用于具有多个产品 ID 的 df。 另外,完成后我需要生成一个 csv。 我尝试了 group by 但计算似乎没有加起来 而且我无法输出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
【问题讨论】:
-
A groupby 是一个惰性求值的对象,它没有 to_csv 方法。您需要获取您的 groupby 对象并应用、转换或聚合它以使其成为具有 to_csv 方法的数据框,如this question
标签: python python-3.x pandas csv group-by