Python pandas滚动平均无窗口数固定

2024-06-09 16:21:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望添加两列[std_dev平均值],其中平均值的样本随着特定位置的日期继续扩展。在

location   date              temp    std_dev    mean
NY         2014-02-01        60      
NY         2014-02-02        55      
NY         2014-02-03        70      
NY         2014-02-04        80      
LA         2014-02-01        80      
LA         2014-02-02        85      
LA         2014-02-03        75       

我找到了一篇解释滚动平均数/标准差的帖子,我把它应用到了表格中。但是,我收到一个std_dev的错误,因为位置的大小不是一个固定值。如何在不固定窗口大小的情况下引用它?在

pandas rolling on a shifted dataframe

^{pr2}$

非常感谢任何帮助!在


Tags: devdate错误locationmeantempla帖子
1条回答
网友
1楼 · 发布于 2024-06-09 16:21:12

我想你在找^{},例如

>>> df
   temp location
0    60       NY
1    55       NY
2    70       NY
3    80       NY
4    80       LA
5    85       LA
6    75       LA

>>> expander = df.groupby('location').temp.expanding(min_periods=2)

>>> orderify = lambda x: x.reset_index(level=0, drop=True).sort_index()

>>> df['mean'], df['std'] = map(orderify, [expander.mean(), expander.std()])

>>> df
  location  temp       mean        std
0       NY    60        NaN        NaN
1       NY    55  57.500000   3.535534
2       NY    70  61.666667   7.637626
3       NY    80  66.250000  11.086779
4       LA    80        NaN        NaN
5       LA    85  82.500000   3.535534
6       LA    75  80.000000   5.000000

注意:在expander上使用.agg是很好的,但是从0.19.2版本开始,groupby.rollinggroupby.expanding上没有复杂的{},所以这是不可能的。看到了吗

相关问题 更多 >