【发布时间】:2020-04-11 16:22:05
【问题描述】:
生成数据
random.seed(42)
date_rng = pd.date_range(start='1/1/2018', end='1/08/2018', freq='H')
df = pd.DataFrame(np.random.randint(0,10,size=(len(date_rng))),
columns=['data'],
index= date_rng)
mask = np.random.choice([1, 0], df.shape, p=[.35, .65]).astype(bool)
df[mask] = np.nan
我想计算std() 用于windows = 5的滚动,如果windows中超过一半的元素= NaN,则滚动计算等于NaN,如果windows中的元素少于一半= NaN , dropna() 并计算其余元素的 std()。
我只知道如何计算正常滚动:
df.rolling(5).std()
如何指定滚动计算的条件
【问题讨论】:
-
你能添加 date_rng 还是其中的一部分
-
我的不好,我会添加它
标签: python python-3.x pandas time-series rolling-computation