我正在嘗試從 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 天前通知此人一次。
我是熊貓的新手,所以歡迎任何形式的幫助。
uj5u.com熱心網友回復:
這可能有點冗長,但我認為它可以滿足您的需求。
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
PS 我更改了 Moe 的日期,以便從今天起 7 天得到一個可行的例子。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/453953.html
