如何从DataFrame TimeIndex

时间:2018-02-10 14:59:37

标签: python pandas

我想以秒为单位的频率。

df.index.freq

返回类似

的内容
<5 * seconds>

我可以对str()进行字符串解析,但感觉很傻。

3 个答案:

答案 0 :(得分:1)

使用.delta.seconds访问者:

In [48]: df.index.freq.delta.seconds
Out[48]: 5

答案 1 :(得分:1)

如果频率未知,您需要解析由DatetimeIndex.freqstr创建的int表单string

df = pd.DataFrame(index=pd.date_range('1/1/2011', periods=3, freq='5S'))
print (df.index.freqstr)
5S

import re

i = int(re.search(r'\d+', df.index.freqstr).group())
print (i)
5
df = pd.DataFrame(index=pd.date_range('1/1/2011', periods=3, freq='10MS'))
print (df.index.freqstr)
10MS

i = int(re.search(r'\d+', df.index.freqstr).group())
print (i)
10

如果频率明确,请使用@MaxU解决方案。

答案 2 :(得分:0)

这应该有效:

df.index.freq.delta.value / 10**9

基础值以纳秒为单位存储,因此您必须使用此方法应用转换因子。

或者,你可以直接得到它:

df.index.freq.delta.seconds