添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

删除数据

根据列名删除列

使用 drop 来删除某列,指定要删除的轴,与对应 列/行 名称/索引

df.drop('name', axis = 1)  # 删除单列
df.drop(['name', 'age'], axis = 1)  # 删除多列

根据索引删除行

与上面删除列的方式相似,不过这里指定的是索引。

df.drop(0, axis=0)  # 删除单行
df.drop([0, 1], axis=0)  # 删除多行

使用 loc 定位数据并删除

先使用 loc 定位某条件的数据,再获取索引 index ,然后使用 drop 删除。

df.drop(df.loc[df['name'] == '娜美'].index, axis=0)  # 删除定位到的行

使用 del 删除列

del 在原数据上进行修改 ,使用是要注意。

del df['age']

同时删除行、列

drop 也可以同时指定行列进行删除,这里删除第一、二行并删除 age 列。

df.drop(columns=['age'], index=[0, 1])

删除重复值

  • 指定 subset ,则根据指定的列作为参考进行去重,即如果某两行 a 值相同,则会删除第二次的出现的那一行,只保留第一次
  • 不指定 subset ,则根据所有列作为参考进行去重,只有两行数据 完全相同 才会进行去重。
  • df.drop_duplicates(subset=['a'], keep='first')
    df.drop_duplicates(keep='first')
            

    筛查重复值

    示例数据

    df = pd.DataFrame({'name':['Python',
                            'Python',
                            'Java',
                            'Java',
                            'C'],
                       'count': [2, 2, 6, 8, 10]})
    

    在这里插入图片描述

    判断某列是否有重复值

    使用 values_counts() 对列中各值出现次数进行统计。结果默认按照降序进行排列,只需要判断第一行值的出现次数是否为1即可判断是否存在重复值。

    df['a'].value_counts()
    

    在这里插入图片描述

    使用 drop_duplicates() 对重复值进行删除,只保留第一次出现的值,判断处理后的值是否与原 df 相等,如果 False 就表示有重复值。

    df.equals(df.drop_duplicates(subset=['a'], keep='first'))
    False
    

    判断 DataFrame 是否有重复行

    同样是使用 drop_duplicates() 对重复值进行删除,只保留第一次出现的值,此时不使用 subset 参数设置列,默认为全部列,判断处理后的值是否与原 df 相等,如果 False 就表示有重复值。

    df.equals(df.drop_duplicates(keep='first'))
    False
    

    统计重复行的数量

    注意这里的统计是参照所有列来的,只有两行完全相同才会判断为重复行,所以统计的结果是 1 。

    len(df) - len(df.drop_duplicates(keep="first"))
    

    显示重复的数据行

    先删除重复的行,只保留第一次出现的,得到一个 行唯一 的数据集,再使用 drop_duplicates() 删除掉 df 中存在重复的所有数据,这次不保留第一次出现的重复值,将上述两个结果集进行合并,使用 drop_duplicates() 对新生成的数据集进行去重,即可得到重复行的数据。

    df.drop_duplicates(keep="first")\
      .append(df.drop_duplicates(keep=False))\
      .drop_duplicates(keep=False)
                【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
                    [email protected]