在pandas/python中选择最近的日期(或值)

2024-06-01 08:32:52 发布

您现在位置:Python中文网/ 问答频道 /正文

如何选择最接近mtc日期的行? 最好不要在每行上循环。 我想以第13、28、43排结束。在

我应该澄清:从具有相同mtc_日期的行集合中选择一行具有最近的plr_日期。在

     mtc_date  mtc_id   plr_date  plr_id  plr_measure
12 2010-03-15       1 2010-01-31       1            0
13 2010-03-15       1 2010-02-28       1            1
24 2010-06-15       2 2010-01-31       2           12
25 2010-06-15       2 2010-02-28       2           13
26 2010-06-15       2 2010-03-31       2           14
27 2010-06-15       2 2010-04-30       2           15
28 2010-06-15       2 2010-05-31       2           16
36 2010-09-15       2 2010-01-31       2           12
37 2010-09-15       2 2010-02-28       2           13
38 2010-09-15       2 2010-03-31       2           14
39 2010-09-15       2 2010-04-30       2           15
40 2010-09-15       2 2010-05-31       2           16
41 2010-09-15       2 2010-06-30       2           17
42 2010-09-15       2 2010-07-31       2           18
43 2010-09-15       2 2010-08-31       2           19
^{pr2}$

Tags: iddatemeasuremtcpr2plr
1条回答
网友
1楼 · 发布于 2024-06-01 08:32:52

根据您的评论,下面是使用groupby更新的解决方案。在

对于每个具有相同mtc_日期的组,找到使mtc_date和plr_date之间的绝对差(以天为单位)最小化的索引。在

min_indexes = mtc.groupby('mtc_date').apply(lambda x: (x['plr_date'] - x['mtc_date']).apply(lambda y: int(y.days)).abs().argmin())

enter image description here

相关问题 更多 >