我的数据如下:
1472698113000000000 -28.84
1472698118000000000 -26.69
1472698163000000000 -27.65
1472698168000000000 -26.1
1472698238000000000 -27.33
1472698243000000000 -26.47
1472698248000000000 -25.24
1472698253000000000 -25.53
1472698283000000000 -27.3
...
这是一个增长的时间序列。每次增长时,我都会尝试使用pandas.rolling_std
来获得集合的滚动标准偏差。每次,结果都包含NaNs,我无法使用(我试图将结果插入InfluxDB,并且当它看到NaN时会抱怨。)
我尝试过不同的窗口大小。我在不同的系列上做这个,不同的增长率和当前尺寸(有些只是几个测量长,几百或几千)。
简单地说,我只想在InfluxDB中有一个滚动的标准差,以便我可以绘制它并观察源数据随时间变化的方式,就其平均值而言。我怎样才能克服这个NaN问题?
答案 0 :(得分:1)
如果您正在做类似
的事情 df.rolling(5).std()
并获得
0 NaN NaN
1 NaN NaN
2 NaN NaN
3 NaN NaN
4 5.032395e+10 1.037386
5 5.345559e+10 0.633024
6 4.263215e+10 0.967352
7 3.510698e+10 0.822879
8 1.767767e+10 0.971972
您可以使用.dropna()
删除NaN。
df.rolling(5).std().dropna()
:
4 5.032395e+10 1.037386
5 5.345559e+10 0.633024
6 4.263215e+10 0.967352
7 3.510698e+10 0.822879
8 1.767767e+10 0.971972