在 python pandas dataframe 中查找与另一个日期列最近的日期

发布于 2025-01-13 09:41:25 字数 1851 浏览 0 评论 0原文

epm_vinrepm_milgrepm_ro_dtimecomplaints_flagdate_flag日期
MALAN51CMBM972380256452020-10-012021-08-07
MALAN51CMBM972380258452021-08-062021-08-07
MALPC813MLM018007393052021-06-12Nan2020-10-01
MALPC813MLM018007287952021-03-05Nan2020-10-01
|   repm_vin         |repm_milg |repm_ro_dtime  |complaints_flag    |date_flag  |Dates|
| :--------      |:-------|:---------|:-----|:----------|:------|:---------|:-----|
|MALAN51CMBM972380  |25845| 2021-08-06| Yes |Yes|   2021-08-07|
|MALPC813MLM018007| 28795|  2021-03-05| Yes|    Yes |2020-10-01|

解决方案应该类似于上面的第二个表意味着我想要 repm_ro_dtime 最接近日期列和标志的行date_flag 为“是”。

epm_vinrepm_milgrepm_ro_dtimecomplaints_flagdate_flagDates
MALAN51CMBM972380256452020-10-01YesNan2021-08-07
MALAN51CMBM972380258452021-08-06YesNan2021-08-07
MALPC813MLM018007393052021-06-12YesNan2020-10-01
MALPC813MLM018007287952021-03-05YesNan2020-10-01
|   repm_vin         |repm_milg |repm_ro_dtime  |complaints_flag    |date_flag  |Dates|
| :--------      |:-------|:---------|:-----|:----------|:------|:---------|:-----|
|MALAN51CMBM972380  |25845| 2021-08-06| Yes |Yes|   2021-08-07|
|MALPC813MLM018007| 28795|  2021-03-05| Yes|    Yes |2020-10-01|

solution should be like above second table means i want the rows where repm_ro_dtime is nearest to Dates column and flag date_flag as Yes.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

辞别 2025-01-20 09:41:25

使用:

idx = df['repm_ro_dtime'].sub(df['Dates']).dt.days.abs().groupby(df['epm_vin']).idxmin()
df = df.loc[idx].assign(date_flag = 'Yes')
print (df)
             epm_vin  repm_milg repm_ro_dtime complaints_flag date_flag  \
1  MALAN51CMBM972380      25845    2021-08-06             Yes       Yes   
3  MALPC813MLM018007      28795    2021-03-05             Yes       Yes   

       Dates  
1 2021-08-07  
3 2020-10-01 

Use:

idx = df['repm_ro_dtime'].sub(df['Dates']).dt.days.abs().groupby(df['epm_vin']).idxmin()
df = df.loc[idx].assign(date_flag = 'Yes')
print (df)
             epm_vin  repm_milg repm_ro_dtime complaints_flag date_flag  \
1  MALAN51CMBM972380      25845    2021-08-06             Yes       Yes   
3  MALPC813MLM018007      28795    2021-03-05             Yes       Yes   

       Dates  
1 2021-08-07  
3 2020-10-01 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文