【发布时间】:2019-07-27 03:05:21
【问题描述】:
我是熊猫新手。 我有一个数据框,我正在查看 Horse 结果。 我试图在每匹马的最后 30 天的列中获得位置完成结果的滚动平均值。这是数据框中的两匹马的示例:
Horse Position OR RaceDate Weight
125283 cookie ring 4 59.0 2016-04-25 52.272727
126134 a boy named sue 7 46.0 2016-05-31 54.090909
137654 a boy named sue 4 49.0 2017-01-25 57.727273
138434 a boy named sue 8 48.0 2017-02-04 55.909091
138865 a boy named sue 2 48.0 2017-02-10 51.363636
140720 a boy named sue 3 50.0 2017-03-10 54.545455
141387 a boy named sue 7 49.0 2017-03-22 59.545455
143850 cookie ring 11 54.0 2017-05-25 56.818182
144203 cookie ring 9 54.0 2017-06-03 50.000000
所以我需要对每匹马进行分组,然后应用 90 天的滚动平均值。我正在通过以下方式调用:
df['PositionAv90D'] = df.set_index('RaceDate').groupby('Horse').rolling("90d")['Position'].mean().reset_index()
但这会返回一个包含 3 列的数据框,并且仍然索引到 Horse。此处示例:
0 a b celebration 2011-08-24 3.000000
1 a b celebration 2011-09-15 4.500000
2 a b celebration 2012-05-29 4.000000
3 a beautiful dream 2016-10-21 2.333333
4 a big sky brewing 2008-04-11 2.000000
5 a big sky brewing 2008-07-08 7.500000
6 a big sky brewing 2008-08-11 10.000000
7 a big sky brewing 2008-09-20 9.000000
8 a big sky brewing 2008-12-30 4.333333
9 a big sky brewing 2009-01-21 3.666667
10 a big sky brewing 2009-02-20 3.777778
我需要一个与原始数据框索引相同的列。
你能帮忙吗?
【问题讨论】:
-
您期待什么?此外,如果您的示例数据匹配,它会更有帮助。尝试获取数据框的一个小样本,然后对该小样本执行计算。