如何从DataFrame TimeIndex中提取频率

问题描述 投票:1回答:3

我希望频率以秒为单位。

df.index.freq

返回类似的东西

<5 * seconds>

我可以在str()上做字符串解析,但感觉很傻。

python pandas
3个回答
0
投票

这应该工作:

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

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

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

df.index.freq.delta.seconds

1
投票

使用.delta.seconds访问器:

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

1
投票

如果频率未知,你需要解析由int创建的string形式DatetimeIndex.freqstr

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解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.