在python中使用pandas使用特定列获取数据框中的过滤结果



假设我有一个包含多列的pandas数据框架——就像这样

targetName  ... atRiskCommonPurchased
0                   Twitter, Inc.  ...             NaN
1                   Forbes Media  ...              NaN
2                   Adobe  ...                     NaN
3                   Virgin Airlines  ...           NaN
4                   H&M  ...                       NaN
[5 rows x 51 columns]

数据帧中还有一列日期

df['dealAnnouncementDate'].dtype
dtype('O')
print(df['dealAnnouncementDate'])
0      2021-08-30
1      2021-08-26
2      2021-08-25
3      2021-08-23
4      2021-08-18

使用df.between(),我可以很容易地使用日期列过滤数据框并获得结果。df[df['dealAnnouncementDate'].between('7/27/2021', '8/27/2021')]

但是,我会每隔7天运行python脚本(例如星期一),我如何确保使用dealAnnouncementDate列我得到7天的过滤结果?请帮助我了解如何做到这一点!谢谢!

如果需要在某些日期之间进行过滤,例如现在和未来7天使用:

df['dealAnnouncementDate'] = pd.to_datetime(df['dealAnnouncementDate'])
now = pd.to_datetime('now').normalize()
print (now)
2021-08-31 00:00:00
df[df['dealAnnouncementDate'].between(now, now + pd.Timedelta('7days'))]

过去7天:

df[df['dealAnnouncementDate'].between(now - pd.Timedelta('7days'), now )]

最新更新