首页 > 解决方案 > 获取非连续熊猫时间戳的频率

问题描述

我有一个时间戳系列

times= pd.to_datetime(['2018-03-01', '2018-03-02', '2018-03-03', '2018-03-06',
           '2018-03-07', '2018-03-08', '2018-03-09', '2018-03-10',
           '2018-03-13', '2018-03-14',

           '2018-07-19', '2018-07-20', '2018-07-21', '2018-07-24',
           '2018-07-25', '2018-07-26', '2018-07-27', '2018-07-28',
           '2018-07-31', '2018-08-01'])

我想发现频率,如果是每天、每周或每月。

但由于没有连续数据,pandas 方法只返回 None。

使用非计数日期推断频率的任何方法?

标签: pythonpandas

解决方案


由于您的数据不连续,因此频率不明确。但随着

s = pd.Series(times)
agg = (s - s.shift(1)).to_frame().groupby(0)[0].agg(len)

您可以获得时间偏移的概览,并且最常见的值是您正在寻找的候选值。

编辑

每日数据:

agg.idxmax() == pd.Timedelta(days=1)

每周数据:

agg.idxmax() == pd.Timedelta(days=7)

推荐阅读