Python 从两个数据帧获取合并的数据帧

Python 从两个数据帧获取合并的数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个数据帧: 源数据帧 index A x y 1 1 100 100 2 1 100 400 3 1 100 700 4 1 300 200 5 2 50 200 6 2 100 200 7 2 800 400 8 2 1200 800 index A x y

我有两个数据帧:

源数据帧

index   A   x       y
1       1   100     100
2       1   100     400
3       1   100     700
4       1   300     200
5       2   50      200
6       2   100     200
7       2   800     400
8       2   1200    800
index   A   x       y
1       1   105     100
2       1   110     410
3       1   110     780
4       2   1000    90
目标数据帧

index   A   x       y
1       1   100     100
2       1   100     400
3       1   100     700
4       1   300     200
5       2   50      200
6       2   100     200
7       2   800     400
8       2   1200    800
index   A   x       y
1       1   105     100
2       1   110     410
3       1   110     780
4       2   1000    90
对于源数据帧中的每一行,我需要根据按“A”列分组的目标数据帧中的值,查找离它最近的值。结果数据帧应如下所示(仅从源(索引1)中提取一行,并从该组中的目标(a==1)中提取相应的最近行)

注:近程列只是一个表示,将来将是一个基于x和y的计算函数。我需要的是两个数据帧之间的行合并

这可能是任意的,但有人能解释一下合并是如何工作的吗?

pd.merge(source\u-df,dest\u-df,on='A')

基本上,它将遍历左数据框的每一项,在右数据框中查找其键,并在合并的数据报中创建一个条目(每次在右数据框中找到键时,它都会创建一个条目,但您可以使用validate关键字更改此行为)

更多信息

pd.merge(源测向,目标测向,在class='A'上)

source_df.merge(dest_df, on='A')
基本上,它将遍历左数据框的每一项,在右数据框中查找其键,并在合并的数据报中创建一个条目(每次在右数据框中找到键时,它都会创建一个条目,但您可以使用validate关键字更改此行为)

更多信息

source_df.merge(dest_df, on='A')
它所做的是首先查看source_df的列和'A',并将其与dest_df的列'A'匹配(如果指定了'on')-非常类似于SQL join-,否则它会尝试使用索引执行此操作,如果失败,则尝试使用公共列名实现连接。您还可以使用“left”和“right”参数连接不同的列名


它所做的是首先查看source_df的列和'A',并将其与dest_df的列'A'匹配(如果指定了'on')-非常类似于SQL join-,否则它会尝试使用索引执行此操作,如果失败,则尝试使用公共列名实现连接。您还可以使用“left”和“right”参数连接不同的列名。

我尝试过合并。我不知道为什么它对我不起作用。但是你的代码是有效的。非常感谢。基本上,它将遍历左侧数据框的每一项,在右侧数据框中查找其键,并在合并的数据报中创建一个条目(每次在右侧数据框中找到键时,它都会创建一个条目,但您可以使用validate关键字更改此行为)。@dean请在答案上注明。这很有帮助,我试过合并。我不知道为什么它对我不起作用。但是你的代码是有效的。非常感谢。基本上,它将遍历左侧数据框的每一项,在右侧数据框中查找其键,并在合并的数据报中创建一个条目(每次在右侧数据框中找到键时,它都会创建一个条目,但您可以使用validate关键字更改此行为)。@dean请在答案上注明。这很有帮助。