我正在尝试从熊猫数据框架中检索特定的行,其中列的日期正好比当前时间多7天。例如,目前的日期是2022-03-22.这是我的数据
name date
0 Max 2022-03-24
1 Joe 2022-03-29
2 Moe 2022-04-03现在我只想找回乔,因为他7天后才知道日期。我已经看到了一些解决方案之间使用,但这也将检索最大,如果检查所有7天。
而且,日期没有时间,只有年、月和日。这样做的原因是,我只想通知一个人一次,当日期是7天前。
我是熊猫新手,所以欢迎任何帮助。
发布于 2022-03-30 05:18:25
这可能有点冗长,但我认为它能做你想做的事。
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])然后,如果调用in7days(df),将得到以下输出:
Id Moe
Name: 2022-04-06 00:00:00, dtype: object我更改了Moe的日期,以便从今天起7天后才能得到一个可行的例子。
https://stackoverflow.com/questions/71662671
复制相似问题