当Python中有n行时,删除n-1行

时间:2016-05-23 11:39:34

标签: python pandas

这是我的问题。例如,有一个数据框显示如下:

### df
Name Code Mass 
a01   j1  0.55
a01   j1  0.55
a01   j1  0.55
a02   j2  0.33
a02   j2  0.33
a03   j3  0.23
a04   j4  0.23

有几行是相同的(例如,名称“a01”的行)。

我想留下一排并放弃冗余。

我的目标数据框应如下所示:

>df
Name Code Mass 
a01   j1  0.55
a02   j2  0.33
a03   j3  0.23
a04   j4  0.23

1 个答案:

答案 0 :(得分:3)

使用drop_duplicates

print (df.drop_duplicates())
  Name Code  Mass
0  a01   j1  0.55
3  a02   j2  0.33
5  a03   j3  0.23
6  a04   j4  0.23

与参数keep='first'相同,因为默认情况下为first

print (df.drop_duplicates(keep='first'))
  Name Code  Mass
0  a01   j1  0.55
3  a02   j2  0.33
5  a03   j3  0.23
6  a04   j4  0.23

您也可以使用:

#keep last value
print (df.drop_duplicates(keep='last'))
  Name Code  Mass
2  a01   j1  0.55
4  a02   j2  0.33
5  a03   j3  0.23
6  a04   j4  0.23

#drop all duplicates
print (df.drop_duplicates(keep=False))
  Name Code  Mass
5  a03   j3  0.23
6  a04   j4  0.23