检测数据帧中的可用时间段

我处理各种数据集(面板数据),并且需要以编程方式检测我是否有每日,每月,每季度或只有每年的数据。所有数据集都有一个日期时间格式的日期列(例如,年度数据仅具有年末日期31-12-2017、31-12-2018等;每日数据可能看起来像02-02-2018、03-05-2018 ,2018年11月11日等,时间间隔各不相同。

对于年度数据,我希望日期间隔为1年,对于季度数据为3个月,对于月度数据为1个月,而每日数据在一个月内应至少有2个日期。

Pandas是否有办法检测数据集中可用的日期间隔?

fgtfer 回答:检测数据帧中的可用时间段

检查您的DataFrame是否包含例如每日数据(根据 您的标准),则可以采用以下方法:

作为源数据帧,我采取了以下措施:

            Value
Date             
2019-01-10     20
2019-01-15     12
2019-01-22     10
2019-02-08     11
2019-02-22     13
2019-03-11     17
2019-03-24     22
2019-05-07     14

Date 是索引,并且是 datetime 类型。

所以有:

  • 3 一月份的读数,
  • 2 2月和3月的读数,
  • 4月份的读数,
  • 1 5月阅​​读。

要查看每个月有多少读数,请按月运行重新采样 然后(每个月) count

df.Value.resample('MS').count()

在上面的代码中, MS 表示月份开始

对于我的数据,结果是:

Date
2019-01-01    3
2019-02-01    2
2019-03-01    2
2019-04-01    0
2019-05-01    1
Freq: MS,Name: Value,dtype: int64

并执行一次检查您是否至少有2个读数 每个月运行:

df.Value.resample('MS').count().ge(2).all()

对于我的数据,结果为 False ,因为4月份没有数据,只有1个读数 五月。

对于其他时期,采取类似的方法,以不同的频率重采样 以及每个时期想要多少读数的标准。

本文链接:https://www.f2er.com/3086830.html

大家都在问