我想以秒为单位的频率。
df.index.freq
返回类似
的内容<5 * seconds>
我可以对str()进行字符串解析,但感觉很傻。
答案 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