欢迎关注公众号【Python开发实战】,免费领取Python学习电子书!

Dataframe的drop_duplicates方法

在实际处理数据中,数据预处理操作中,常常需要去除掉重复的数据,这就用到了Dataframe的drop_duplicates方法。

drop_duplicates方法介绍

方法形式为 drop_duplicates(subset=None, keep=‘first’, inplace=False, ignore_index=False),返回删掉重复行的Dataframe。

参数解析:

  • **subset:**列名或列名序列,对某些列来识别重复项,默认情况下使用所有列。

  • **keep:**可选值有first,last,False,默认为first,确定要保留哪些重复项。

    • first:删除除第一次出现的重复项,即保留第一次出现的重复项。
    • last:保留最后一次出现的重复项。
    • False:删除所有重复项。
  • **inplace:**布尔值,默认为False,返回副本。如果为True,则直接在原始的Dataframe上进行删除。

  • **ignore_index:**布尔值,默认为False,如果为True,则生成的行索引将被标记为0、1、2、…、n-1。

返回:

  • 返回删除重复项的Dataframe或None,当inplace=True时返回None。

用例1

导入包

import pandas as pd
import numpy as np
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

输出:

image-20220426182746273

默认情况下,会根据所有列来删除重复的行。

df.drop_duplicates()

输出:

image-20220426182730732

用例2

删除特定列上的重复项,使用subset参数。

df.drop_duplicates(subset=['brand'])

输出:

image-20220426182716625

df.drop_duplicates(subset='brand')

输出:

image-20220426182703144

用例3

删除前两列的重复项,并保留最后一次出现的数据,使用keep。

df.drop_duplicates(subset=['brand', 'style'], keep='last')

输出:

image-20220426182649480

用例4

删除所有列的重复项,并直接在原数据上操作。

df   # 去重复之前

输出:

image-20220426182632123

df.drop_duplicates(inplace=True)   # 返回None
df   # 直接在原数据上去重

输出:

image-20220426182614656

用例5

删除所有列的重复项,重新设置行索引。

df.drop_duplicates(ignore_index=True)

输出:

image-20220426182558961

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐