滚动条件均值

Conditional mean by rolling

                  Data       flag
2017-01-01        17.2        False     
2017-01-02        17.0        False      
2017-01-03        16.8        False   
2017-01-04        18.3        False      
2017-01-05        19.1        True       
...
2017-12-28        20.1        False      
2017-12-29        19.8        False      
2017-12-30        18.9        False      
2017-12-31        19.5        False      

有一个 pandas 数据框,其中包含值和标志。 我想通过滚动(window=30)计算平均值,如果标志是 "NOT TRUE".

您可以使用 pandas.rolling_mean(),同时将数据框子集化为仅包含 df.flag 为假的条目(~ 运算符反转布尔系列的真值,获取所有值 df.flagFalse).

pandas.rolling_mean(df[~df.flag], window=30)