用Pandas和NaNs滚动标准偏差

时间:2016-09-01 03:20:35

标签: python pandas influxdb standard-deviation

我的数据如下:

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问题?

1 个答案:

答案 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