zoukankan      html  css  js  c++  java
  • pandas(提取)去除重复项

    方法

    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

  • 相关阅读:
    华为"128为大整数相加"机试题
    ORA-12545: 因目标主机或对象不存在, 连接失败
    VS2010 安装使用STLPort
    Debian 入门安装与配置1
    CF1072A Palindromic Twist 思维
    解决让刷新页面时不提示 "重试或取消”对话框
    php优化及高效提速问题小结
    让Tomcat支持php
    Php邮件发送源码
    使用iconv提示未知错误
  • 原文地址:https://www.cnblogs.com/soymilk2019/p/13953535.html
Copyright © 2011-2022 走看看