woodwork.table_accessor.WoodworkTableAccessor.infer_temporal_frequencies#
- WoodworkTableAccessor.infer_temporal_frequencies(temporal_columns=None, debug=False)[源]#
- 推断 DataFrame 中每个时间列的观察频率(每日、每两周、每年等)。
时间列是逻辑类型为 Datetime 或 Timedelta 的列。
- 参数:
temporal_columns (list[str], optional) – 应推断频率的列。必须是存在于 DataFrame 中且本质上是时间类型的列。默认为 None。如果未指定,将推断所有时间列的频率。
debug (boolean) – 一个标志,用于确定在未找到统一频率时是否为每个时间列返回更多信息。
- 返回:
- 一个字典,其中每个键是 DataFrame 中的时间列,值是其观察频率,表示为 pandas 偏移别名字符串(例如 D、M、Y),
如果在数据中不存在统一频率则为 None。
- 返回类型:
(dict)
注意
- 此方法中使用的 pandas 工具
pd.infer_freq
具有以下行为: - 如果一列中即使只有一行不遵循其余行的频率,
则不会推断出频率。例如,原本是每日数据但跳过一天的示例:
['2011-01-03', '2011-01-04', '2011-01-05', '2011-01-07']
。
如果数据中存在任何 NaNs,则不会推断出频率。
- Pandas 将使用它可用的最大偏移别名,因此每周数据会推断为
W
而不是7D
。 可用偏移别名的列表,其中包括表示工作日的
B
或表示纳秒的N
等别名,可在 https://pandas.ac.cn/pandas-docs/stable/user_guide/timeseries.html#offset-aliases 找到
- Pandas 将使用它可用的最大偏移别名,因此每周数据会推断为
- 偏移别名可以组合,创建类似
2d1H
的表示,也可以表示为 ‘49H’。 Pandas 的频率推断在需要组合别名的情况下会返回较低的通用别名,
49H
。
- 偏移别名可以组合,创建类似
- 偏移字符串可以包含比偏移别名更多的信息。例如,日期范围
pd.date_range(start="2020-01-01", freq="w", periods=10)
将被推断为频率W-SUN
。该字符串是带有锚定后缀的偏移别名,表示数据不仅是每周观察一次,而且所有日期都在周日。更多锚定偏移可在以下链接查看: https://pandas.ac.cn/pandas-docs/stable/user_guide/timeseries.html#anchored-offsets
- 某些可以为
pd.date_range
定义的频率随后无法由 pandas 的pd.infer_freq
重新推断。 一个示例是在使用工作日偏移别名
B
的pd.date_range(start="2020-01-01", freq="4b", periods=10)
时看到,它在构建日期范围时是一个有效的freq
参数,但随后无法推断。
- 某些可以为
用于推断噪声数据频率的算法可以配置(参见 https://woodwork.alteryx.org.cn/en/stable/guides/setting_config_options.html#Available-Config-Settings)