gpt4 book ai didi

Python pandas 滚动意味着没有窗口 num 固定

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:19 24 4
gpt4 key购买 nike

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

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

df['mean'] = df.groupby('location')['temp'].apply(pd.rolling_mean,4,min_periods=2).shift(1)

df['std_dev'] = df.groupby('location')['temp'].apply(pd.rolling_std,4,min_periods=2).shift(1)

非常感谢任何帮助!

最佳答案

我想你在找expanding ,例如

>>> 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 版开始,没有复杂的agggroupby.rollinggroupby.expanding 上可用,所以这是不可能的。见

关于Python pandas 滚动意味着没有窗口 num 固定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42536066/

24 4 0
文章推荐: python - Django 过滤子对象的值
文章推荐: c# - 动态添加行到