如何比较熊猫的时间频率?

时间:2018-06-15 15:33:24

标签: python pandas dataframe

我有一个固定的时间序列频率date,我希望比较Pandas DataFrame中的数据频率。

因此,例如,我获得了一个带有pd.infer_freq(df['date'])列的DataFrame,我可以使用'H'来推断其时间频率,'M'会返回,例如{{1}}。那很棒!我现在可以说'H'(每小时)比'MS'(月开始)更频繁。但鉴于我不知道DataFrame总是有多少频率(我只提供'H'作为例子),我如何将它与我的固定时间频率('MS')进行比较?

我尝试将all possible time frequencies按频率顺序放入列表/元组中,然后将列表中的“MS”索引与列表中推断频率的索引进行比较。但是这很容易出错,因为如果DataFrame有一个{{1}}(月末)频率,而在我的列表中'M'出现在'MS'之前,则可以得出结论M的频率低于MS,这显然是假的,因为两者是相等的频率。

Pandas甚至有办法进行时间频率比较吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以创建一个字典,将所有可能的时间频率映射到一个数字,其中较小的数字表示它的频率较高。这允许您将相同的频率映射到不同的描述到相同的数字。然后只需创建一个比较函数

dct = {'N': 0, 'U': 1, 'us': 1, 'L': 2, 'ms': 2}

然后你可以用它来映射输出以进行比较。

dct['us'] < dct['U']
#False

dct['us'] = dct['U']
#True