如果有一堆值,这些值是按特定顺序分开的日期,该怎么办?当涉及到机器学习处理大量数据时,将是一项棘手的任务,找出如此大量的数据集中的日期是否存在分隔的共同间隔也是如此。
本文探讨了infer_freq( ) 函数的细微差别,该函数为那些寻求在给定输入中查找最可能的频率的人提供了帮助。此外,本文还通过适当的示例演示了其功能。 因此,让我们首先使用以下代码导入pandas库。
import pandas as pd |
此后,我们将通过以下各节深入研究infer_freq( ) 函数。
- infer_freq( ) 函数的语法
- infer_freq ( ) 函数的用例
- 使用infer_freq ( ) 函数时的潜在错误
infer_freq( ) 函数的语法
需要注意的是,输入到infer_freq() 函数中的输入值的顺序是DatetimeIndex或TimedeltaIndex。除日期和时间之外的任何其他内容只会导致该功能无法使用。以下是包含infer_freq( )函数正常运行所需的强制和可选结构的语法。
pandas.infer_freq(index, warn = True ) |
在哪里,
- index – DatetimeIndex或TimedeltaIndex包含用于推断频率的值。
- 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!