如何使用熊猫计算GroupBy对象的滚动平均值?

我的代码:

df = pd.read_csv("example.csv", parse_dates=['ds'])
df = df.set_index('ds')
grouped_df = df.groupby('city')


grouped_df的外观如下:

python - 如何使用 Pandas 计算GroupBy对象的滚动平均值?-LMLPHP

我想使用熊猫在GroupBy对象中的每个组上计算滚动平均值吗?

我尝试了pd.rolling_mean(grouped_df,3)。

这是我得到的错误:

AttributeError:“ DataFrameGroupBy”对象没有属性“ dtype”

编辑:我是否使用itergroups并在迭代过程中计算每个组上每个组的滚动平均值?

最佳答案

您希望左列的日期和所有城市值作为单独的列。一种实现方法是在datecity上设置索引,然后取消堆栈。这等效于数据透视表。然后,您可以按照通常的方式进行滚动平均。

df = pd.read_csv("example.csv", parse_dates=['ds'])
df = df.set_index(['date', 'city']).unstack('city')
rm = pd.rolling_mean(df, 3)


我不建议使用函数,因为给定城市的数据可以简单地按以下方式返回(:返回所有行):

df.loc[:, city]

关于python - 如何使用 Pandas 计算GroupBy对象的滚动平均值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33199052/

10-12 18:16