在 Python 中使用 Pandas Infer_Freq() 变得简单

如果有一堆值,这些值是按特定顺序分开的日期,该怎么办?当涉及到机器学习处理大量数据时,将是一项棘手的任务,找出如此大量的数据集中的日期是否存在分隔的共同间隔也是如此。

本文探讨了infer_freq( ) 函数的细微差别,该函数为那些寻求在给定输入中查找最可能的频率的人提供了帮助。此外,本文还通过适当的示例演示了其功能。 因此,让我们首先使用以下代码导入pandas库。

import pandas as pd

此后,我们将通过以下各节深入研究infer_freq( ) 函数。

  • infer_freq( ) 函数的语法
  • infer_freq ( ) 函数的用例
  • 使用infer_freq ( ) 函数时的潜在错误

infer_freq( ) 函数的语法

需要注意的是,输入到infer_freq() 函数中的输入值的顺序是DatetimeIndexTimedeltaIndex除日期和时间之外的任何其他内容只会导致该功能无法使用。以下是包含infer_freq( )函数正常运行所需的强制和可选结构的语法

pandas.infer_freq(index, warn=True)

在哪里,

  • index –  DatetimeIndexTimedeltaIndex包含用于推断频率的值。
  • warn –默认设置为“True”,如果没有可推断的频率,则用于返回警告文本。但在 1.5.0 之后的版本中,此选项似乎已被弃用。

infer_freq( ) 函数的用例

让我们使用DatetimeIndex函数使用一组日期构造一个输入索引,代码如下所示。

I = pd.DatetimeIndex(["2023-01-01", "2023-01-08", "2023-01-15", "2023-01-22"])

完成后,我们将通过infer_freq( )函数发送它,看看它的表现如何。

pd.infer_freq(I)

以下是上述代码运行时的结果。

Output:
'W-SUN'

从上面的结果可以推断出,输入索引中的每个给定日期都属于连续几周的星期日。

让我们使用另一个数据集(例如下面给出的数据集)来仔细研究infer_freq( )函数的功能。这次应使用date_range ( )函数来输入序列而不是索引。

I1 = pd.date_range(start='2023-01-01', end='2023-01-25', periods=25)

现在是时候使用infer_freq( )函数从上述数据集中推断频率了

pd.infer_freq(I1)
频率推断结果

上述结果表明给定的数据集以一天的频率分隔。这也表明infer_freq( )函数的功能不仅限于索引,还扩展到包括序列。解决这个难题后,让我们继续讨论使用infer_freq( )函数时遇到的常见错误。


使用 infer_freq( ) 函数时的潜在错误

使用infer_freq( )函数时可能会遇到两种类型的错误,即:

  • 类型错误
  • 值错误

当给定输入不包含日期时间顺序的数据时,会出现“类型”错误,而当给定输入包含少于 3 个日期的值时,会出现“值”错误。下面是一个演示,看看它是如何工作的。

I2 = [['2023', '2021', '2020', '2023']]
pd.infer_freq(I2)
Output:
ValueError: Need at least 3 dates to infer frequency

结论

现在我们已经到了本文的结尾,希望它已经详细说明了如何使用pandas库中的infer_freq ( )函数这是另一篇文章,详细介绍了 Python 中pandas中的cut()函数的用法AskPython中还有许多其他有趣且内容丰富的文章,可能对那些希望提高 Python 水平的人有很大帮助。Audere est Facere!


参考