Python Pandas: 快速查找非连续日期范围内的缺失日期
Python Pandas: 快速查找非连续日期范围内的缺失日期
在使用 Pandas 处理日期数据时,我们经常需要找出给定日期范围内缺失的日期。当日期数据非连续时,我们可以使用 Pandas 的 date_range 函数生成一个连续的日期范围,然后通过集合的差集操作来找出缺失的日期。
代码示例:
import pandas as pd
# 给定的日期组
dates = pd.to_datetime(['2022-01-01', '2022-01-03', '2022-01-05'])
# 找出最大日期和最小日期
min_date = min(dates)
max_date = max(dates)
# 生成连续的日期范围
all_dates = pd.date_range(start=min_date, end=max_date)
# 找出没有出现在日期组中的日期
missing_dates = set(all_dates) - set(dates)
print(missing_dates)
输出结果:
{Timestamp('2022-01-02 00:00:00'), Timestamp('2022-01-04 00:00:00')}
解释:
- 我们首先使用
pd.to_datetime()将字符串日期转换为Timestamp对象。 - 然后使用
min()和max()函数找出日期组中的最小日期和最大日期。 - 使用
pd.date_range()函数生成一个从最小日期到最大日期的连续日期范围。 - 最后,使用集合的差集操作
set(all_dates) - set(dates)来找出在all_dates中但不在dates中的日期,即缺失的日期。
通过以上代码,我们可以轻松地找出给定非连续日期范围内缺失的日期。这在数据分析和处理中非常有用,例如分析时间序列数据、识别数据缺失情况等。
原文地址: http://www.cveoy.top/t/topic/ka 著作权归作者所有。请勿转载和采集!