Python教程pandas数据分析去重复值

  • Post category:Python

一、概述
pandas是一个Python语言的第三方库,用于数据分析。数据去重是常用的数据清洗操作之一,而pandas库中提供了多种去重方法,本篇教程我们将讲解pandas数据去重的详细攻略。

二、数据去重方法
pandas中主要提供了三种去重方法:duplicated()、drop_duplicates()、unique()。下面分别介绍这三种方法的具体使用。

  1. duplicated()
    duplicated()方法返回一个布尔型的Series/数组,代表每一行是否为重复行。其用法为:
df.duplicated(subset=None, keep='first')

其中,subset参数表示去重的列或列的列表,如果不指定,则使用所有列;keep参数则表示去重后保留哪个数据,’first’表示保留第一行数据,’last’表示保留最后一行数据,False表示不保留任何数据。

下面是一个示例:

import pandas as pd

df = pd.DataFrame({'A': [1, 1, 2, 3], 'B': [4, 5, 6, 6]})

print(df.duplicated()) # 打印出[False, False, False, True]

上面的示例中,由于第四行与第三行完全相同,所以被判断为重复数据。

  1. drop_duplicates()
    drop_duplicates()方法直接返回去重后的结果。其用法为:
df.drop_duplicates(subset=None, keep='first', inplace=False)

其参数同duplicated()方法,inplace参数表示是否在原有DataFrame上进行修改,默认为False,即返回一个新的DataFrame。
下面是一个示例:

import pandas as pd

df = pd.DataFrame({'A': [1, 1, 2, 3], 'B': [4, 5, 6, 6]})

print(df.drop_duplicates()) # 打印出第1、2、3行,第4行被去掉

上面的示例中,由于第四行与第三行完全相同,so第四行is去掉。

  1. unique()
    unique()方法仅返回去重后的结果。其用法为:
series.unique()

对于DataFrame,可以使用apply()方法逐列进行去重,例如:

df.apply(lambda x: x.unique())

三、示例说明
以汽车品牌和价格为例,对各个方法进行示例说明。

import pandas as pd

data = {'Brand': ['Ford', 'Toyota', 'Ford', 'Toyota', 'Ford', 'Toyota', 'Honda', 'Toyota'],
        'Price': [20000, 25000, 20000, 30000, 20000, 25000, 28000, 30000]}
df = pd.DataFrame(data)

# 方法一:duplicated()
print(df.duplicated()) # 打印[False, False, True, False, True, True, False, False]
print(df[df.duplicated()]) # 打印第3、5、6行

# 方法二:drop_duplicates()
print(df.drop_duplicates()) # 打印去重后的结果(共5行)

# 方法三:unique()
print(df['Brand'].unique()) # 打印['Ford' 'Toyota' 'Honda']
print(df.apply(lambda x: x.unique())) # 打印去重后的结果,对于'Brand'列即['Ford' 'Toyota' 'Honda'],对于'Price'列即[20000 25000 30000 28000]

四、结束语
本文介绍了pandas数据去重的三种方法:duplicated()、drop_duplicates()、unique(),并且针对汽车品牌和价格的数据做了详细的示例说明。使用pandas进行数据去重,可以轻松地清洗数据,为后续的数据分析做好准备。