我有时间序列的压力数据,其间隙,采样率为1 Hz - 我想检测数据的周期性。
我知道有12个小时的时间,而且我有几个月的测量时间,因此我使用重新采样与熊猫来获得每小时而不是每秒的时间序列:
df_avg = df.resample('H').mean()
所以data看起来像:
ATMOSPHERIC PRESSURE (hPa)
YYYY-MO-DD HH-MI-SS_SSS
2016-06-01 17:00:00 1004.610034
2016-06-01 18:00:00 1004.730975
2016-06-01 19:00:00 1005.166842
2016-06-01 20:00:00 1005.544264
2016-06-01 21:00:00 1005.961861
...... ....
然后我尝试了对Lomb-Scargle的数据:
dfs = df_avg
y = dfs['ATMOSPHERIC PRESSURE (hPa)'].values.flatten()
x = np.arange(0, len(dfs.index), 1) #Time vector
f = np.linspace(0.00001, 1000 , 100000)
pgram = signal.lombscargle(x, y, f*2*np.pi, normalize=True)
但由于某些我不理解的原因,我在NaN的pgram
数组中得到了数据。
有什么建议吗?
顺便说一下, 我也尝试过使用FFT,同样的问题。