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')}

解释:

  1. 我们首先使用 pd.to_datetime() 将字符串日期转换为 Timestamp 对象。
  2. 然后使用 min()max() 函数找出日期组中的最小日期和最大日期。
  3. 使用 pd.date_range() 函数生成一个从最小日期到最大日期的连续日期范围。
  4. 最后,使用集合的差集操作 set(all_dates) - set(dates) 来找出在 all_dates 中但不在 dates 中的日期,即缺失的日期。

通过以上代码,我们可以轻松地找出给定非连续日期范围内缺失的日期。这在数据分析和处理中非常有用,例如分析时间序列数据、识别数据缺失情况等。

Python Pandas: 快速查找非连续日期范围内的缺失日期

原文地址: http://www.cveoy.top/t/topic/ka 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录