如何只检索列字段值比当前时间正好多7天的数据帧行



我正在尝试从pandas数据帧中检索特定的行,其中列的日期正好比当前时间多7天。例如,当前日期为2022-03-22。这是我的数据帧:

name      date              
0       Max     2022-03-24
1       Joe     2022-03-29
2       Moe     2022-04-03

现在我只想找回乔,因为他正好7天后就有了约会日期。我见过一些使用between的解决方案,但如果在7天内检查所有内容,这也会检索到Max。

此外,日期没有时间,只有年、月和日。原因是当日期是7天前时,我只想通知此人一次。

我是熊猫的新手,所以欢迎任何形式的帮助。

这可能有点冗长,但我认为它可以满足您的需要。

from datetime import datetime, timedelta
import pandas as pd
df = pd.DataFrame({'Id':['Max','Joe','Moe'],
'Source':['2022-03-24','2022-03-30','2022-04-06']
})
df.Source = pd.to_datetime(df.Source)
df = df.set_index('Source')
def in7days(df):
now = datetime.now()
dt = now + timedelta(7)
idx = df.index.get_loc(dt, method='nearest')
td = (dt - df.index[idx]).days
if td != 0:
return("No entries found.")
else:
return(df.iloc[idx])

然后,如果你调用7days(df(,你会得到以下输出:

Id    Moe
Name: 2022-04-06 00:00:00, dtype: object

附言:为了得到一个可行的例子,我把Moe的日期改为从今天起7天。

相关内容

  • 没有找到相关文章

最新更新