[英]How To Find A Closest Date To a Given Date?
我有兩個數據幀 df1、df2。 我需要構建一個輸出來查找最接近 df1 的日期,同時匹配 df1 和 df2 中的 ID 值。 下面顯示的 df(所需的輸出)說明了我在上面解釋過的內容!
df1:
ID Date
1 2020-01-01
2 2020-01-03
df2:
ID Date
11 2020-01-11
4 2020-02-03
5 2020-04-02
6 2020-01-05
1 2021-01-13
1 2021-03-03
1 2020-01-30
2 2020-03-31
2 2021-04-01
2 2021-02-02
df (Output desired)
ID Date Closest Date
1 2020-01-01 2020-01-30
2 2020-01-03 2020-03-31
這是實現它的一種方法 - 假設Date
列的dtype
是datetime
:首先,
df3 = df1[df1.ID.isin(df2.ID)]
會給你
ID Date
0 1 2020-01-01
1 2 2020-01-03
然后
df3['Closest_date'] = df3.apply(lambda row:min(df2[df2.ID.eq(row.ID)].Date,
key=lambda x:abs(x-row.Date)),
axis=1)
min
的df2.Date
,其中df2[df2.ID.eq(row.ID)].Date
正在獲取具有匹配ID
和key=lambda x:abs(x-row.Date)
告訴min
按距離進行比較,axis=1
輸出:
ID Date Closest_date
0 1 2020-01-01 2020-01-30
1 2 2020-01-03 2020-03-31
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.