【问题标题】:Using Group by and creating a CSV使用 Group by 并创建 CSV
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2022-01-19
    • 1970-01-01
    • 2016-07-15
    • 2021-08-26
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多