如何在pandas数据帧中删除多次出现特定列的行

时间:2017-07-05 19:16:04

标签: python pandas

我有一个包含3列和大量行的数据框

     A     B     C     D     E
aa   hi    43    21    22    45
ab   helo  44    65    86    94
ac   hola  42    71    91    44
ad   hi    12    79    45    12
ae   hey   81    14    34    42
af   hi    21    45    12    02
ag   hola  04    12    39    65

我想删除A列中的所有多次出现,保留第一行并消除其余部分,所以我希望数据框如下

     A     B     C     D     E
aa   hi    43    21    22    45
ab   helo  44    65    86    94
ac   hola  42    71    91    44
ae   hey   81    14    34    42

1 个答案:

答案 0 :(得分:1)

使用带有参数subset的{​​{3}}作为检查对象的列:

df = df.drop_duplicates(subset=['A'])
#same as keep='first', because default value can be omited
# df = df.drop_duplicates(subset=['A'], keep='first')
print (df)
       A   B   C   D   E
aa    hi  43  21  22  45
ab  helo  44  65  86  94
ac  hola  42  71  91  44
ae   hey  81  14  34  42

也可以只保留最后一行:

df = df.drop_duplicates('A', keep='last')
print (df)
       A   B   C   D   E
ab  helo  44  65  86  94
ae   hey  81  14  34  42
af    hi  21  45  12   2
ag  hola   4  12  39  65