如何使用熊猫计算GroupBy对象的滚动平均值?
我的代码:
df = pd.read_csv("example.csv", parse_dates=['ds'])
df = df.set_index('ds')
grouped_df = df.groupby('city')
grouped_df的外观如下:
我想使用熊猫在GroupBy对象中的每个组上计算滚动平均值吗?
我尝试了pd.rolling_mean(grouped_df,3)。
这是我得到的错误:
AttributeError:“ DataFrameGroupBy”对象没有属性“ dtype”
编辑:我是否使用itergroups并在迭代过程中计算每个组上每个组的滚动平均值?
最佳答案
您希望左列的日期和所有城市值作为单独的列。一种实现方法是在date
和city
上设置索引,然后取消堆栈。这等效于数据透视表。然后,您可以按照通常的方式进行滚动平均。
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/