簡體   English   中英

如何找到最接近給定日期的日期?

[英]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列的dtypedatetime :首先,

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)
  • 得到mindf2.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM