如何删除重复两列匹配的行?

时间:2018-03-07 14:18:33

标签: pandas dataframe duplicates

对于我的毕业设计项目,我想删除重复的行,并且只保留一行,其中列b和c等于列a中的值。我尝试了很多东西,groupby,Merge组合和重复,但到目前为止还没有任何效果。你能帮我么?非常感谢!

输入:

   a    b    c
0  1    A    B
1  1    A    A
2  1    A    C
3  2    B    A
4  2    B    B

结果:

   a    b    c
1  1    A    A
4  2    B    B

1 个答案:

答案 0 :(得分:0)

我相信你需要:

print (df)
   a    b    c
0  1    A    B
1  1    A    A
2  1    A    C
3  2    B    A
4  2    B    B
5  3    C    C
6  4    C  NaN
7  4    C    E
7  5  NaN    E

用正向和反向填充替换NaN

df1 = df[['b','c']].bfill(axis=1).ffill(axis=1)
print (df1)
   b  c
0  A  B
1  A  A
2  A  C
3  B  A
4  B  B
5  C  C
6  C  C
7  C  E
7  E  E

检查df1中的条件,因为相同的索引可能会过滤df

df = df[df1['b'] == df1['c']]
print (df)
   a    b    c
1  1    A    A
4  2    B    B
5  3    C    C
6  4    C  NaN
7  5  NaN    E