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并删除重复行,它将起作用