Pandas2.2 General
Top-level dealing with datetimelike data
方法 | 描述 |
---|---|
to_datetime(arg[, errors, dayfirst, …]) | 用于将对象数据(如字符串)转换为日期时间类型 |
to_timedelta(arg[, unit, errors]) | 用于将对象数据(如字符串)转换为时间差类型 |
date_range([start, end, periods, freq, tz, …]) | 用于生成固定频率的日期时间序列 |
bdate_range([start, end, periods, freq, tz, …]) | 用于生成基于工作日的日期范围 |
period_range([start, end, periods, freq, name]) | 用于生成固定频率的周期序列 |
timedelta_range([start, end, periods, freq, …]) | 用于生成固定频率的时间差序列 |
infer_freq(index) | 用于根据时间序列数据自动推断其频率 |
pandas.infer_freq()
pandas.infer_freq()
函数用于推断给定日期时间索引(DatetimeIndex)或时间差索引(TimedeltaIndex)的频率。它不接受任何参数,而是直接作用于输入的索引对象。然而,为了完整性和上下文,我将介绍如何使用这个函数,并提供示例及结果。
def infer_freq(
index: DatetimeIndex | TimedeltaIndex | Series | DatetimeLikeArrayMixin,
) -> str | None:
...
参数
- index(DatetimeIndex 或 TimedeltaIndex)
- 要推断频率的日期时间索引或时间差索引。
返回值
- str 或 None
- 如果能够推断出频率,则返回相应的频率字符串(如
'D'
表示天,'H'
表示小时等)。 - 如果无法推断出频率(例如,索引中的时间间隔不规则),则返回
None
。
- 如果能够推断出频率,则返回相应的频率字符串(如
示例 1:推断日期时间索引的频率
import pandas as pd
# 创建一个日期时间索引
dates = pd.date_range(start='2023-01-01', periods=5, freq='D')
# 推断频率
freq = pd.infer_freq(dates)
print(freq)
结果:
D
在这个例子中,pd.infer_freq()
正确地推断出了日期时间索引的频率为 'D'
(天)。
示例 2:推断时间差索引的频率
import pandas as pd
# 创建一个时间差索引
deltas = pd.timedelta_range(start='0 days', periods=5, freq='h')
# 推断频率
freq = pd.infer_freq(deltas)
print(freq)
结果:
h
在这个例子中,pd.infer_freq()
正确地推断出了时间差索引的频率为 'H'
(小时)。
示例 3:无法推断频率的情况
import pandas as pd
# 创建一个不规则的日期时间索引
dates = pd.to_datetime(['2023-01-01', '2023-01-03', '2023-01-05'])
# 推断频率
freq = pd.infer_freq(dates)
print(freq)
结果:
2D
在这个例子中,由于日期时间索引中的时间间隔不规则(不是固定的天数),pd.infer_freq()
无法推断出频率,因此返回了 None
。
总结
pandas.infer_freq()
是一个有用的函数,用于自动推断日期时间索引或时间差索引的频率。然而,它依赖于索引中的时间间隔是规则的。如果时间间隔不规则,则无法推断出频率,函数将返回 None
。