Python 熊猫根据最相似的值合并数据报

Python 熊猫根据最相似的值合并数据报,python,pandas,join,merge,Python,Pandas,Join,Merge,我试图合并2个数据帧,但是,合并列中的值不完全相同 我正在使用命令 pd.merge(D\u数据,L\u数据,on=“R\u时间”) 然而,在D_数据中,我的R_时间列如下所示 4.316667、4.320834、4.325000 在我的L_数据列中,我的数据如下所示: 4.31000,4.32000,… 基本上,我要做的是获取第一个集合中的每个项目,并将其与第二个集合中最近的元素相匹配。我已经用Excel中的vlookup函数实现了这一点,但我不确定如何在Pandas Dataframe对

我试图合并2个数据帧,但是,合并列中的值不完全相同

我正在使用命令
pd.merge(D\u数据,L\u数据,on=“R\u时间”)
然而,在D_数据中,我的R_时间列如下所示

4.316667、4.320834、4.325000

在我的L_数据列中,我的数据如下所示:

4.31000,4.32000,…


基本上,我要做的是获取第一个集合中的每个项目,并将其与第二个集合中最近的元素相匹配。我已经用Excel中的vlookup函数实现了这一点,但我不确定如何在Pandas Dataframe对象中获得相同的功能

给定数据:

D_数据:
4.316667
4.320834 4.325 4.329167 4.333334 4.3375 4.341667 4.345834 4.35 4.354167 4.358334

L_数据
4.316667
4.318667
4.320667
4.322667
4.324667
4.326667
4.328667
4.330667
4.332667
4.334667
4.336667


我想在这些元素之间建立一个配对,即使它们在大多数情况下并不完全相同

首先在L_数据中使用R_数据中最接近的值(最小绝对差的索引)创建一列,然后合并:

import pandas as pd
D_data =pd.DataFrame({"R_Time":[4.316667,4.320834,4.325,4.329167,4.333334,4.3375,4.341667,4.345834,4.35,4.354167,4.358334]})
L_data =pd.DataFrame({"_R_Time":[4.316667,4.318667,4.320667,4.322667,4.324667,4.326667,4.328667,4.330667,4.332667,4.334667,4.336667]})

L_data["R_Time"]=L_data.apply(lambda x:D_data["R_Time"][abs(D_data["R_Time"]-x["_R_Time"]).idxmin()],axis=1)
pd.merge(D_data, L_data,on="R_Time")
结果:

      R_Time   _R_Time
0   4.316667  4.316667
1   4.316667  4.318667
2   4.320834  4.320667
3   4.320834  4.322667
4   4.325000  4.324667
5   4.325000  4.326667
6   4.329167  4.328667
7   4.329167  4.330667
8   4.333334  4.332667
9   4.333334  4.334667
10  4.337500  4.336667

您可以使用:

您能给我们提供一些数据吗?输入和预期输出?我添加了一个示例。