Kal*_*nta 6 python dataframe pandas
我有两个数据框:
df1
col1 col2
8 A
12 C
20 D
df2
col1 col3
7 F
15 G
Run Code Online (Sandbox Code Playgroud)
我想将col1上的这两个数据帧合并,以使df2和df1中最接近的col1值合并到一行中。
最终的数据帧看起来像
df
col1 col2 col3
8 A F
12 C G
20 D NA
Run Code Online (Sandbox Code Playgroud)
我可以使用for循环并比较数字来执行此操作,但是执行时间将非常长。
有没有任何Python方式可以做到这一点,所以运行时间将减少。一些熊猫捷径可能是。
使用merge_asof与direction='nearest'和宽容参数:
df = pd.merge_asof(df1, df2, on='col1', direction='nearest', tolerance=3)
print (df)
col1 col2 col3
0 8 A F
1 12 C G
2 20 D NaN
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |