python 数据帧日期时间频率从“5S”中提取 5
python dataframe datetime frequency extract 5 from '5S'
我正在使用 pd.inter_freq(df.index) 来了解数据频率。我的问题是,如何从字符串中提取数字。
代码:
xdf = pd.DataFrame({'data':range(0,6)},index=pd.date_range('2022-06-03 00:00:00', '2022-06-03 00:00:25', freq='5s'))
print(pd.infer_freq(xdf.index))
# time frequency
tf = int(pd.infer_freq(xdf.index))
预期输出
tf = 5
当前输出:
ValueError: invalid literal for int() with base 10: '5S'
您想访问 freq
的 n
属性。
>>> xdf.index.freq.n
5
要查找最频繁的频率,请使用 mode
:
>>> xdf.index.to_series().diff().dt.seconds.mode()
5
不是解析 pd.infer_freq()
的输出,而是直接从 DatetimeIndex.freq
读取数字:
>>> pd.infer_freq(xdf.index)
'5S'
>>> xdf.index.freq
<5 * Seconds>
>>> xdf.index.freq.n
5
>>> xdf.index.freq.name
'S'
我正在使用 pd.inter_freq(df.index) 来了解数据频率。我的问题是,如何从字符串中提取数字。 代码:
xdf = pd.DataFrame({'data':range(0,6)},index=pd.date_range('2022-06-03 00:00:00', '2022-06-03 00:00:25', freq='5s'))
print(pd.infer_freq(xdf.index))
# time frequency
tf = int(pd.infer_freq(xdf.index))
预期输出
tf = 5
当前输出:
ValueError: invalid literal for int() with base 10: '5S'
您想访问 freq
的 n
属性。
>>> xdf.index.freq.n
5
要查找最频繁的频率,请使用 mode
:
>>> xdf.index.to_series().diff().dt.seconds.mode()
5
不是解析 pd.infer_freq()
的输出,而是直接从 DatetimeIndex.freq
读取数字:
>>> pd.infer_freq(xdf.index)
'5S'
>>> xdf.index.freq
<5 * Seconds>
>>> xdf.index.freq.n
5
>>> xdf.index.freq.name
'S'