欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

处理重复数据

程序员文章站 2022-03-06 21:33:29
...

 

       我们获取的数据往往会存在一些重复数据,重复数据会对统计结果产生影响,也会误导决策人员的决策。

       那么对DataFrame的重复项判断及删除重复项是对数据整理的基本要求。

  • 判断数据是否有重复项 df.duplicated()

     df.duplicated(self,subset=None,keep='first')

  • 可通过 drop_duplicates() 移除重复项 

     df.drop_duplicates(subset=['A','B'],keep='first',inplace=True)

 

>>参数解释

  1. subset:列标签或标签序列,可选,仅考虑某些列来标识重复项,默认情况下使用所有列

  2. keep:{'first','last',False},默认为'first'

                first: 只保留第一次出现的组合

                last: 保留最后一次出现的组合

                False: 将所有重复项标记为True

  3. inplace:为True时表示直接在原来的DataFrame上删除重复项

 

>>>举例说明

d = {'Name':['Newton', 'Galilei', 'Einstein', 'Feynman', 'Newton', 'Maxwell', 'Galilei'],
             'Age':[26, 30, 28, 28, 26, 39, 40],
             'Score':[90, 80, 90, 100, 90, 70, 90]}
df = pd.DataFrame(d,columns=['Name','Age','Score'])
df

 

处理重复数据

>>>df.duplicated()返回一组bool值,用于筛选重复值/非重复值,反映的是每行是否存在重复

df.duplicated()

 处理重复数据

>>>df.drop_duplicates()返回的是DataFrame,内容是duplicated返回数组中False的部分

df.drop_duplicates()

 处理重复数据

Duplicated()和drop_duplicates()方法是以默认的方式判断全部的列(上面的例子中是看三个变量Name、Age、Score是否都是重复出现)

  • 也可以对特定列进行重复项判断

df.duplicated('Age',keep='last')

处理重复数据

df.duplicated(['Age','Score'])

处理重复数据

  • 对特定列进行重复项移除 

df.drop_duplicates('Age',keep='last')

 处理重复数据

>>>为了能够得到最直接的结果,可以使用any函数,该函数表示的是在多个条件判断中,只要一个条件为True,则any函数的结果就为True.正如结果所示,any函数的运用返回True值,说明该数据集是存在重复观测的

df.duplicated().any()

处理重复数据

>>>查看每列的重复率

df[df.duplicated()].count()/df.count()

处理重复数据

相关标签: 数据分析 python