美文网首页
如何使用drop_duplicates进行简单去重

如何使用drop_duplicates进行简单去重

作者: 一本正经胡说八道的猫 | 来源:发表于2022-03-30 15:27 被阅读0次

一本正经胡说八道的猫


什么是去重呢?
简单来说,数据去重指的是删除重复数据。在一个数字文件集合中,找出重复的数据并将其删除,只保存唯一的数据单元。在我们的数据预处理过程中,这是一项我们经常需要进行的操作。

去重有哪些好处?

  1. 节省存储空间
  2. 提升写入性能
  3. 提高模型精度

Excel,有个删除重复项功能,但以我微薄的知识,发现只可以删除所有列重复的值才可以匹配删除,如果我定义,某只排查几列相同的值的重复行,保留其中一行数据,Excel就不太行了。
这时候pandas出手了。

在pandas中如何使用drop_duplicates进行去重

  • 函数体及主要参数
    函数体:

df.drop_duplicates(subset=['A','B'],keep='first',inplace=True)
主要参数:

subset: 输入要进行去重的列名,默认为None
keep: 可选参数有三个:‘first’、 ‘last’、 False, 默认值 ‘first’。其中,
first表示: 保留第一次出现的重复行,删除后面的重复行。
last表示: 删除重复项,保留最后一次出现。
False表示: 删除所有重复项。
inplace:布尔值,默认为False,是否直接在原数据上删除重复项或删除重复项后返回副本。

  • 实例操作
import numpy as np
import pandas as pd
df = pd.DataFrame({'Country':[1,1,2,12,34,23,45,34,23,12,2,3,4,1], 
 
                   'Income':[1,1,2,10000, 10000, 5000, 5002, 40000, 50000, 8000, 5000,3000,15666,1],
 
                    'Age':[1,1,2,50, 43, 34, 40, 25, 25, 45, 32,12,32,1],
                   'group':[1,1,2,'a','b','s','d','f','g','h','a','d','a',1]})
df
image.png

df.shape
(14, 4)

  1. 对整个数据表进行去重处理
df.drop_duplicates(inplace=True)
df
image.png

数据表默认使用‘first’参数 保留了第一次出现的重复行,因此,第1行和第13行数据被删除了。
注意了~
大家看数据表中的索引,在我们使用drop_duplicates删除重复行时,重复行相对应的索引值也是被默认删除掉的,也就是说,索引值已经发生了变化。

那我们该如何解决这个问题呢?

答案是要将索引重置,这样后面再次使用才不会因为索引不存在而报错。

重置索引的方法是:reset_index

reset_index,默认(drop = False),当我们指定(drop = True)时,则不会保留原来的index,会直接使用重置后的索引。
df.reset_index(drop=True)

image.png
  1. 对指定的数据列进行去重:
    同时对'Age’列和'group'列进行去重,保留最后出现的一行
    df.drop_duplicates(subset=['Age','group'],keep='last')
    image.png

相关文章

网友评论

      本文标题:如何使用drop_duplicates进行简单去重

      本文链接:https://www.haomeiwen.com/subject/bevvjrtx.html