簡體   English   中英

Python pandas滾動意味着沒有修復窗口數

[英]Python pandas rolling mean without the window num fixed

我想添加兩列[ std_devmean ],其中均值的樣本隨着特定位置的日期繼續而擴展。

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的錯誤,因為該位置的大小不是固定值。 如何在不修復窗口大小的情況下參考窗口大小?

大熊貓在移位的數據幀上滾動

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開始,在groupby.rollinggroupby.expanding上沒有復雜的agg ,所以這是不可能的。 看到

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM