【问题标题】:Error message when using: groupby('').transform(pd.rolling_sum, window=30)使用时出现错误信息:groupby('').transform(pd.rolling_sum, window=30)
【发布时间】:2020-05-22 20:35:22
【问题描述】:

为什么会这样:

df2['rollsum'] = df2.groupby('ID')['yes'].transform(pd.rolling_sum, window=30, min_periods=1)

引发错误:“AttributeError: module 'pandas' has no attribute 'rolling_sum'”?? 另外,我试过了

df2['rollsum'] = df2.groupby('ID')['yes'].rolling(30).mean()

这给了我这个错误:“TypeError:插入列的索引与框架索引不兼容”

我在这里做错了什么?

【问题讨论】:

    标签: python pandas group-by transform rolling-computation


    【解决方案1】:

    我觉得pd.rolling_sum已经贬值了,你能做的是:

    df2['rollsum'] = df2.groupby('ID')['yes'].transform(lambda x: x.rolling(30).sum())
    

    df2['rollsum'] = df2.groupby('ID')['yes'].rolling(30).sum().reset_index(level=0, drop=True)
    

    reset_index 将在分配列时允许索引对齐

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-18
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多