过滤同一日期范围内的 df

Filter df within same date range

我有一份每周报告,我需要在同一列(客户 ID)中找到同一日期范围(提交日期)内发生的重复 ID。

import pandas as pd
from datetime import timedelta

df = pd.read_excel('report.xlsx', engine='openpyxl', parse_dates=['Submit Date'])
customer = report['Customer ID']

submit_date = report['Submit Date']
submit_date = submit_date.dt.date
submit_date.sort_index(inplace=True)

mask1 = customer.duplicated(keep=False) == True
report = report[mask1]

这部分很简单 - 我得到了所有重复 ID 的结果。但是,我不确定我应该如何解决将它限制在同一天的问题,例如 2021-04-12,所以我只能在这个特定日期重复。我尝试创建 for 循环,其中有 if 语句检查

if day < day + timedelta(days=1)

但这似乎没有带来任何结果。我可以对日期进行硬编码,以便为一周中的每个单独日期创建不同的掩码,但我希望保持报告自动化。

提前感谢所有想法!

我实际上设法解决了:

while start_date <= end_date:
same_date_values = report.loc[start_date == submit_date]
print(f" ################# DATE CHECKED: {start_date} #################")

mask1 = same_date_values['Customer ID'].duplicated(keep=False) == True
same_date_values = same_date_values[mask1]

df = df.append(same_date_values)

start_date += timedelta(days=1)

这是一个 while 循环,我错过了循环声明之后,但这基本上让我可以迭代每一天(12-04、13-4 等)并将其分解成具有相同的更小的数据帧日期。