检查Pandas的失踪日期
在这篇文章中,我们将学习如何在Pandas中检查丢失的日期。
使用pd.DataFrame()从列表的字典中创建一个数据框,它接受数据作为其参数。请注意,这里的字典由两个列表组成,名为Date和Name.,这两个列表的长度相同,而且在给定的日期序列中缺少一些日期(从2021-01-18到2021-01-25_)。
检查遗漏的日期
检查数据框中是否缺少给定的Date
在这里,如果日期是存在的,我们将返回True,如果日期在数据框中丢失,则返回False。
输出:
使用data_range()和.difference()函数来检查缺失的日期
示例 1:
df.set_index() **** 方法将日期作为我们创建的数据框架的索引。人们可以简单地使用print(df)来打印数据框,以查看设置日期作为索引之前和之后的数据。现在,一旦我们将日期设置为索引,我们就将给定的日期列表转换为DateTime对象。最初,我们列表中的日期是字符串,需要转换为DateTime对象。Pandas为我们提供了一个名为to_datetime()的方法,可以将字符串格式的日期和时间转换为_DateTime对象。
输出:
最后,我们得到了2021-01-18和2021-01-25之间缺少的所有日期。
DatetimeIndex([‘2021-01-19’, ‘2021-01-21’, ‘2021-01-22’, ‘2021-01-24′], dtype=’datetime64[ns]’, freq=None)
Pandas.Index.difference() **** 返回一个新的索引,其中的元素不在其他索引中。因此,通过使用pd.date_range(start date, end date).difference(Date),我们可以得到所有不存在于我们的日期列表中的日期。返回的数据类型是一个类似于Immutable ndarray的datetime64数据。
示例 2:
让我们考虑另一个例子。然而,这一次我们将不把日期设置为索引,而是在pd.date_range()函数中指定freq=’B’(营业日频率)。
就像前面的例子一样,我们从列表的字典中制作一个数据框架。但是,这一次我们不把日期值设置为索引。相反,我们将列 “总人数 “作为我们的索引值。使用pd.date_range()函数,将开始日期、结束日期和频率作为参数,我们提供这些值。我们设置freq=’B’(营业日频率),以便省略周末。最后,Pandas.Index.difference()将Date列作为参数,并返回所有不在给定值集合中的值。
输出:
检查遗漏的日期
请注意,除了2021-01-23、2021-01-24和2021-01-30之外的所有缺失值都被返回,因为我们设置了freq=’B’,省略了所有的周末时间。
使用reindex()函数检查丢失的日期
在这里,我们将字符串类型的日期转换为数据时间类型,在reindex()的帮助下,我们将检查所有在给定数据框架中缺失的日期,并将其分配为True,否则分配为False。
输出:
检查遗漏的日期