soymilk2019

方法

DataFrame.drop_duplicates(subset=None, keep=\'first\', inplace=False)

参数

subset : column label or sequence of labels, optional 
用来指定特定的列,默认所有列
keep : {‘first’, ‘last’, False}, default ‘first’ 
删除重复项并保留第一次出现的项
inplace : boolean, default False 
是直接在原来数据上修改还是保留一个副本

实战

第一种情况,去掉重复的数据:

### 构造数据
data = pd.DataFrame(data=[[\'a\',1],[\'a\',2],[\'b\',1],[\'b\',2],[\'a\',1]],columns=[\'label\',\'num\'])
 
data
Out[17]: 
  label  num
0     a    1
1     a    2
2     b    1
3     b    2
4     a    1

Dataframe已经有相关的函数来处理这个问题,就是drop_duplicates()函数。我们看到下面已经把重复的(’a\',1)已经删除了。具体的参数大家可以点击链接,参考官方文档。总共只有三个参数。

data.drop_duplicates()
Out[18]: 
  label  num
0     a    1
1     a    2
2     b    1
3     b    2

我们也可以利用subset参数指定去除某一列的重复值。

data.drop_duplicates(subset=\'label\')
Out[20]: 
  label  num
0     a    1
2     b    1

第二种情况,从数据中提取重复的数据:

DataFrame也提供了相关的函数来处理这个问题,就是duplicated()函数。我们可以看到duplicated函数返回的是布尔类型,重复出现就返回True。该函数只有两个参数,大家可以参考官方文档。

data.duplicated()
Out[40]: 
0    False
1    False
2    False
3    False
4     True
dtype: bool

因为keep参数默认为First,就是除了第一次出现的数据,其他重复的数据都标记为True;如果我们想要获取所有重复的数据,可以将keep的值赋值为False。如下所示,就可以提取出所有重复的数据。

data.duplicated(keep=False)
Out[41]: 
0     True
1    False
2    False
3    False
4     True
dtype: bool

 因为duplicated函数返回的是布尔类型,所以要想得到具体的数据可以做如下操作:

data[data.duplicated(keep=False)]
Out[42]: 
  label  num
0     a    1
4     a    1

 

参考文章:

https://blog.csdn.net/zx1245773445/article/details/99973622?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.pc_relevant_is_cache&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.pc_relevant_is_cache

https://blog.csdn.net/u010665216/article/details/78559091

分类:

技术点:

相关文章:

  • 2021-10-15
  • 2021-12-03
  • 2021-12-28
  • 2021-12-28
  • 2021-12-28
  • 2021-11-29
  • 2021-08-02
  • 2021-10-15
猜你喜欢
  • 2021-10-01
  • 2021-12-02
  • 2021-12-19
  • 2021-08-02
  • 2021-11-13
  • 2021-10-16
  • 2021-09-23
相关资源
相似解决方案