【发布时间】:2021-09-29 22:22:08
【问题描述】:
我需要在同一数据框的列中找到匹配项,我正在做的是复制数据框并在数据框与其副本之间进行合并,但是当两列相等时,有一种方法可以避免重复并且当之前显示相同的结果时。例如:
df1 = pd.DataFrame()
df1['Id'] = ['001','002','003','004','005','006']
df1['Tel'] = ['123','456','789','123','852','123']
df2 = df1
df3 = pd.merge(df1,df2,on='Tel',how='inner')
结果如下:
Id_x Tel Id_y
0 001 123 001
1 001 123 004
2 001 123 006
3 004 123 001
4 004 123 004
5 004 123 006
6 006 123 001
7 006 123 004
8 006 123 006
9 002 456 002
10 003 789 003
11 005 852 005
但我想要以下结果:
Id_x Tel Id_y
0 001 123 004
1 001 123 006
2 004 123 006
如您所见,当 Id_x == Id_y 时我需要忽略结果,但当相同的结果以不同的顺序显示时,我也需要忽略,例如在第一个结果中索引 1 是相同的结果索引 3,索引 2 与索引 6 的结果相同,索引 5 与索引 7 的结果相同。所以在最终结果中,我只想要索引 1、索引 2 和索引 5。
有没有办法做到这一点?
非常感谢!
【问题讨论】:
标签: python pandas dataframe merge