【发布时间】:2022-11-25 10:13:11
【问题描述】:
我正在尝试对两个具有“ID”和“日期”列的大型数据帧执行内部合并。每个示例如下所示:
df1
ID Date
0 RHD78 2022-08-05
1 RHD78 2022-08-06
2 RHD78 2022-08-09
3 RHD78 2022-08-11
4 RHD78 2022-08-12
5 RHD78 2022-08-14
6 RHD78 2022-08-15
7 RHD78 2022-08-19
8 BDW56 2022-03-15
9 BDW56 2022-03-16
10 BDW56 2022-03-17
11 BDW56 2022-03-22
12 BDW56 2022-03-23
13 BDW56 2022-03-27
14 BDW56 2022-03-29
15 BDW56 2022-03-30
df2
ID Date
0 RHD78 2022-08-12
1 BDW56 2022-03-23
如果我使用代码 df_result = pd.merge(df1, df2, how = 'inner', on='Date'),那么我会得到两个相交的数据点。但是,我正在努力引入一个 timedelta,以便生成的数据帧还包括相交日期前后 4 天的数据,如下所示:
df_desired
ID Date
0 RHD78 8/9/2022
1 RHD78 8/11/2022
2 RHD78 8/12/2022
3 RHD78 8/14/2022
4 RHD78 8/15/2022
5 BDW56 3/22/2022
6 BDW56 3/23/2022
7 BDW56 3/27/2022
我试图研究使用 merge_asof() 函数,但我的理解是它只获取最接近日期且不在特定日期范围内的值。我正在学习 pandas 和 python,所以如果有人能帮助我解决这个问题并提供 merge_asof() 的简化解释,我将不胜感激。
【问题讨论】:
标签: python python-3.x pandas dataframe merge