使用时报错:groupby('').transform(pd.rolling_sum, window=30)
Error message when using: groupby('').transform(pd.rolling_sum, window=30)
为什么会这样:
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: incompatible index of inserted column with frame index"
我做错了什么?
我觉得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
将在分配列时允许索引对齐
为什么会这样:
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: incompatible index of inserted column with frame index"
我做错了什么?
我觉得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
将在分配列时允许索引对齐