我有一个 pandas 数据框,如下所示:
A B C
1 2 x
1 2 y
3 4 z
3 5 x
我希望在特定列中共享相同值的行仅保留 1 行。在上面的例子中我指的是列A and B。换句话说,如果列的值A and B在数据框中出现多次,只应保留一行(哪一行并不重要)。
FWIW:所谓重复行的最大数量(即其中列A and B相同)是 2。
结果应该是这样的:
A B C
1 2 x
3 4 z
3 5 x
or
A B C
1 2 y
3 4 z
3 5 x
Use drop_duplicates http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.drop_duplicates.html带参数subset
,仅保留最后重复的行添加keep='last'
:
df1 = df.drop_duplicates(subset=['A','B'])
#same as
#df1 = df.drop_duplicates(subset=['A','B'], keep='first')
print (df1)
A B C
0 1 2 x
2 3 4 z
3 3 5 x
df2 = df.drop_duplicates(subset=['A','B'], keep='last')
print (df2)
A B C
1 1 2 y
2 3 4 z
3 3 5 x
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)