你好,我想根据column的匹配值合并两个数据框。当我这样做时,它导致重复的行。
我的数据框如下:
df1:
e_name p1 p2 p3
e01 10 12 15
e02 12 18 25
e03 16 14 09
df2:
e_name mean
e01 09
e02 11
e03 15
预期输出:
out1:
e_name p1 p2 p3 mean
e01 10 12 15 09
e02 12 18 25 11
e03 16 14 09 15
我的代码:
#Solution 1:
out1 = pd.merge(df1, df2, how='inner', on='e_name')
#Solution 2:
out2 = summary_stats.merge(df1, df2, left_on='e_name', right_on='e_name')
两个解决方案均返回重复的行:
e_name p1 p2 p3 mean
e01 10 12 15 09
e01 10 12 15 09
e02 12 18 25 11
e02 12 18 25 11
e03 16 14 09 15
e03 16 14 09 15
如何获得没有重复行的解决方案?
答案 0 :(得分:0)
我认为您需要通过drop_duplicates
每列e_name
删除第二个DataFrame中的重复项:
out1 = pd.merge(df1, df2.drop_duplicates('e_name'), on='e_name')
或两者皆有:
out1 = pd.merge(df1.drop_duplicates('e_name'), df2.drop_duplicates('e_name'), on='e_name')