设置DatetimeIndex频率,是否正确?

时间:2017-06-08 10:16:51

标签: python pandas

有两个时间序列如:

import pandas
from numpy import nan


# 1-minute period
index = pandas.date_range('1/1/2010', periods=8, freq='T')
series1 = pandas.Series([1., nan, nan, nan, nan, 2., nan, nan], index=index)

# 5-minutes period
index = pandas.date_range('1/1/2010', periods=2, freq='5T')
series5 = pandas.Series([1., 2.], index=index)

其中一个基于1分钟,另一个基于5分钟。它们在相同的时间戳上具有相同的值(不包括nan)。

我不想保留nan值,所以我放弃它们。但是,删除它们也会丢弃DatetimeIndex

中的频率信息
series1 = series1.dropna()
print(series1.index.freq)

现在,我真的希望能够区分这两个系列:相同的时间戳,相同的值,但源自不同的基频。

为了做到这一点,我手动设置了频率":

from pandas.tseries.frequencies import to_offset


series.index.freq = to_offset('T')

问题(S):

  • 可以出问题吗? (即:Pandas可能希望仅为具有完整/填充索引的系列设置该频率)
  • 如果是这样,我还应该如何保存这些信息?

1 个答案:

答案 0 :(得分:0)

简而言之:在我所知道的系列中,没有好的方法来跟踪这些信息。 以下是一些替代方案:

系列属性

您可以将自己的属性添加到系列中。请注意,复制Series或将其添加到DataFrame

时将无法保留这些内容
series1._myfreq = 'T'
series5._myfreq = '5T'

索引名称

与属性相同的警告

series1.index.name = 'T'
series5.index.name = '5T'

Series

之外

通过选择适当的变量名称,您可以区分它们,或者您可以将系列保持在dict中,freq作为字典的其他项目之一