pandas:找出、删除重复的数据(Python) 您所在的位置:网站首页 python列表去除重复数据 pandas:找出、删除重复的数据(Python)

pandas:找出、删除重复的数据(Python)

2024-03-29 02:49| 来源: 网络整理| 查看: 265

pandas:找出、删除重复的数据(Python) 前言一、duplicated()二、drop_duplicates()总结

前言

当我们使用pandas处理数据的时候,经常会遇到数据重复的问题,如何找出重复数据进而分析重复原因,或者如何直接删除重复的数据是一个关键的步骤,pandas提供了很方便的方法:duplicated()和drop_duplicates()。

一、duplicated()

duplicated()可以被用在DataFrame的三种情况下,分别是pandas.DataFrame.duplicated、pandas.Series.duplicated和pandas.Index.duplicated。他们的用法都类似,前两个会返回一个布尔值的Series,最后一个会返回一个布尔值的numpy.ndarray。

DataFrame.duplicated(subset=None, keep=‘first’)

subset:默认为None,需要标记重复的标签或标签序列 keep:默认为‘first’,如何标记重复标签

first:将除第一次出现以外的重复数据标记为Truelast:将除最后一次出现以外的重复数据标记为TrueFalse:将所有重复的项都标记为True(不管是不是第一次出现)

Series.duplicated(keep=‘first’) keep:与DataFrame.duplicated的keep相同

Index.duplicated(keep=‘first’) keep:与DataFrame.duplicated的keep相同

例子:

import pandas as pd df = pd.DataFrame({ 'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'], 'style': ['cup', 'cup', 'cup', 'pack', 'pack'], 'rating': [4, 4, 3.5, 15, 5] }) df brand style rating 0 Yum Yum cup 4.0 1 Yum Yum cup 4.0 2 Indomie cup 3.5 3 Indomie pack 15.0 4 Indomie pack 5.0 df.duplicated() 0 False 1 True 2 False 3 False 4 False dtype: bool df.duplicated(keep='last') 0 True 1 False 2 False 3 False 4 False dtype: bool df.duplicated(keep=False) 0 True 1 True 2 False 3 False 4 False dtype: bool df.duplicated(subset=['brand']) 0 False 1 True 2 False 3 True 4 True dtype: bool

关于Index的重复标记:

df = df.set_index('brand') df style rating brand Yum Yum cup 4.0 Yum Yum cup 4.0 Indomie cup 3.5 Indomie pack 15.0 Indomie pack 5.0 df.index.duplicated() array([False, True, False, True, True]) 二、drop_duplicates()

与duplicated()类似,drop_duplicates()是直接把重复值给删掉。下面只会介绍一些含义不同的参数。

DataFrame.drop_duplicates(subset=None, keep=‘first’, inplace=False) subset:与duplicated()中相同 keep:与duplicated()中相同 inplace:与pandas其他函数的inplace相同,选择是修改现有数据还是返回新的数据

Series.drop_duplicates()相比Series.duplicated()也是多了一个inplace参数,和上诉介绍一样,Index.drop_duplicates()与Index.duplicated()参数相同就不做赘述。下面是例子:

df = pd.DataFrame({ 'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'], 'style': ['cup', 'cup', 'cup', 'pack', 'pack'], 'rating': [4, 4, 3.5, 15, 5] }) df brand style rating 0 Yum Yum cup 4.0 1 Yum Yum cup 4.0 2 Indomie cup 3.5 3 Indomie pack 15.0 4 Indomie pack 5.0 df.drop_duplicates() brand style rating 0 Yum Yum cup 4.0 2 Indomie cup 3.5 3 Indomie pack 15.0 4 Indomie pack 5.0 df.drop_duplicates(inplace = True) df brand style rating 0 Yum Yum cup 4.0 2 Indomie cup 3.5 3 Indomie pack 15.0 4 Indomie pack 5.0 总结

有剩余无,pandas有很多好用的库,但是系统学下来很不现实,都是在实际项目中不断的发现、积累、记录下来。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有