Python 如何在不获取重复数据的情况下加入数据帧?

Python 如何在不获取重复数据的情况下加入数据帧?,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个数据帧,如下所示: df1 id salary 0 1 1000 1 2 2000 df2 id txn age gender 0 1 6 23 M 1 1 4 23 M 2 2 10 31 F 3 2 5 31 F 4 2 8 31 F I want to join the datafra

我有两个数据帧,如下所示:

df1

       id  salary
    0  1   1000
    1  2   2000

df2

       id  txn  age  gender
    0  1   6     23   M
    1  1   4     23   M
    2  2   10    31   F
    3  2   5     31   F
    4  2   8     31   F

I want to join the dataframes as following:

df3

       id  salary age  gender
    0  1   1000    23   M
    1  2   2000    31   F
我正在使用以下代码,但总共得到5行。但是,我只需要像上面的dataframe那样的2行

d3=pd.merge(d1,d2,on='id',how='left')
加入数据帧而不获得重复数据帧的正确方法是什么?

尝试:

df3 = df1.merge(df2.drop_duplicates('id')[['id','age','gender']],
                on='id', how='left')
输出:

   id  salary  age gender
0   1    1000   23      M
1   2    2000   31      F
尝试:

输出:

   id  salary  age gender
0   1    1000   23      M
1   2    2000   31      F

因为来自df1-->的id 1在df2中看到id为1的2行,而来自df2-->的id 2在df2中看到id为2的3倍,所以将接收5行—如果删除列txn并删除重复行,它将起作用您将收到5行,因为来自df1-->的id 1在df2中看到id为1的2行,而来自df2-->的id 2在df2中看到id为2的3倍,因此它将占用所有行—如果删除列txn并删除重复行,它将起作用