如何提取pandas timeseries数据的速率?

2024-10-02 22:33:35 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,考虑

                    Temp       Hum        WS
DateTime                                         
2019-08-01 00:00:00   35.9615  20.51460  1.287225
2019-08-01 00:20:00   36.5795  21.92870  2.213225
2019-08-01 00:40:00   36.2885  22.62970  2.331175
2019-08-01 01:00:00   36.1095  22.76075  2.532800

时间间隔显然是20分钟,但是否有提取时间间隔的功能? 我正在编写一个脚本,使用df.resample(rate).mean()重新采样以降低分辨率 我想确保我们只在速率大于df的速率时运行脚本。将低分辨率数据转换为高分辨率数据是没有意义的。在本例中,“60T”的速率是可以接受的,因为它将20分钟的数据转换为小时数据。但是,“10吨”的税率不应被接受


Tags: 数据功能脚本dfdatetime间隔wsrate
2条回答

它取决于数据,如果指定了频率,请使用^{}

print (df.index.freqstr)
20T

如果未指定,则可以通过converterted DatetimeIndex与^{}进行比较:

idx = df.asfreq('20T').index
m = (df.index == idx).all()
print (m)
True

print (idx.freqstr)
20T

尝试:

# if index not datetime object, then
# df.index = pd.to_datetime(df.index)
>>> pd.Series(df.index).diff().mean().components.minutes
20
#or,
>>> pd.Series(df.index).diff().iloc[-1].components.minutes
20

相关问题 更多 >