我希望频率以秒为单位。
df.index.freq
返回类似的东西
<5 * seconds>
我可以在str()上做字符串解析,但感觉很傻。
这应该工作:
df.index.freq.delta.value / 10**9
基础值以纳秒为单位存储,因此您必须使用此方法应用转换因子。
或者,你可以像这样直接得到它:
df.index.freq.delta.seconds
使用.delta.seconds
访问器:
In [48]: df.index.freq.delta.seconds
Out[48]: 5
如果频率未知,你需要解析由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解决方案。