按当前数据前一周的日期筛选数据帧

2024-04-25 19:32:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将一个.xlsx电子表格读入Pandas数据帧,这样我就可以删除基于所有列的重复行,并将数据帧导出到.csv。其中一列是格式为MM/DD/YY的日期列。在

Here is a sample of the unaltered data

此电子表格包含每个星期五根据前一周到本周的小时数支付的工资单的异常支付小时数条目。每天加一行有一个异常函数用那天的数据。我想告诉pandas只在行中查找日期小于或等于当前星期五前一周的星期五日期的重复项(此脚本只在星期五运行)。例如,如果今天是2018年12月7日星期五,我希望将截止日期设置为前一个星期五,即11/30/18,并且只查看日期在2018年11月30日或之前的行。在执行drop\u duplicates之前,如何以这种方式修剪数据帧?在


Tags: ofcsvthe数据samplepandashereis
2条回答

您可以使用日期和时间增量。在

获取今天的日期。 将日期从今天的日期开始存储一周。 过滤你的数据(我不知道你是如何存储的,但我使用了generate names)

from datetime import date, timedelta   


today = date.today()
week_prior =  today - timedelta(weeks=1)

df_last_week = df[df['date'] <= week_prior]

请注意,如果您确信您的脚本只在星期五运行,那么使用1周(或7天)的固定时间窗口是可以的。在

当然,您可以通过编程获得上周五的日期,并过滤该日期的数据帧:

last_friday = datetime.now().date() - timedelta(days=datetime.now().weekday()) + timedelta(days=4, weeks=-1)
print(df[df['date'] <= pd.Timestamp(last_friday)])

相关问题 更多 >