Python 大熊猫的滚动平均值?

Python 大熊猫的滚动平均值?,python,pandas,Python,Pandas,我有一个示例df如下: | date | group | price | |------------|--------|-------| | 11/25/2020 | cars | 3 | | 11/25/2020 | trucks | 2 | | 11/26/2020 | cars | 5 | | 11/26/2020 | trucks | 2 | | 11/27/2020 | cars | 3 | | 11/27/2020 |

我有一个示例df如下:

| date       | group  | price |
|------------|--------|-------|
| 11/25/2020 | cars   | 3     |
| 11/25/2020 | trucks | 2     |
| 11/26/2020 | cars   | 5     |
| 11/26/2020 | trucks | 2     |
| 11/27/2020 | cars   | 3     |
| 11/27/2020 | trucks | 4     |
我的最终目标是得到每个小组截至日期的滚动累计平均价格。我期望的输出如下:

| date       | group  | avg_price |
|------------|--------|-----------|
| 11/25/2020 | cars   | 3         |
| 11/26/2020 | cars   | 4         |
| 11/27/2020 | cars   | 3.67      |
| 11/25/2020 | trucks | 2         |
| 11/26/2020 | trucks | 2         |
| 11/27/2020 | trucks | 2.67      |
我最初的想法是使用
df.itertuples()
循环df,同时使用
while循环
日期范围,但我不能完全理解它。如果有人对最快的方法有任何建议,我们将不胜感激,谢谢

可用于累计平均值:

df=df.set_index('date').groupby('group').expanding().mean()
#组日期价格
#汽车2020年11月25日300万辆
#        11/26/2020  4.000000
#        11/27/2020  3.666667
#卡车2020年11月25日200万辆
#        11/26/2020  2.000000
#        11/27/2020  2.666667
要匹配您的精确输出,请重置索引并重命名
price

df=df.reset_index().reset_index().rename(列={'price':'avg_price'}))
#团体日期平均价格
#0辆车2020年11月25日300万辆
#1辆车2020年11月26日400万辆
#2辆车2020年11月27日3.666667
#3辆卡车2020年11月25日200万辆
#4辆卡车2020年11月26日200万辆
#5辆卡车2020年11月27日2.666667

您是否尝试过这种方法,将日期列转换为数据帧的索引,然后对所需频率使用滚动功能?编辑:选中此项扩展的作用是什么@tdy@Vishnudev看看哦!谢谢@Anurag。这就像在开始索引固定的情况下滚动一样。@Vishnudev是的,但在
扩展()
时,窗口大小不是恒定的。它不会滑动固定窗口(如
rolling()
),而是以增量方式扩展窗口。实际上,我刚刚意识到这就是你所说的“开始索引固定”的意思