pandas数据清洗总结

前言

pandas数据清洗,一般包括对重复值的处理,对缺失值的处理及异常值的处理;下面分别介绍。

对重复值识别及处理

对重复值的处理,一般会涉及到对重复值的判断,及对重复值的删除操作,会使用到df.duplicated()函数及df.drop_duplicates()。
下面重点介绍一下df.duplicated()函数。

df.duplicated()

df.duplicated()是一个用于检测DataFrame中重复行的函数。它返回一个布尔型的Series,表示每一行是否为重复行。如果一行是重复行,则对应的布尔值为True,否则为False。

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

该函数的常用参数包括:

subset:指定要考虑的列,默认情况下会考虑所有列。可以传入一个列名或者列名的列表来指定特定的列进行重复行检测。
keep:指定保留哪一个重复行。默认值为’first’,表示保留第一次出现的重复行;可以设置为’last’,表示保留最后一次出现的重复行;也可以设置为False,表示所有重复行都标记为True。

df.drop_duplicates函数

df.drop_duplicates(subset=None, keep=‘first’,inplace=False)

实战

import pandas as pd 

df = pd.DataFrame({
   
   
    'brand': ['YumYum','YumYum', 'YumYum', 'Indomie', 'Indomie', 'Indomie'],
    'style': ['cup','cup', 'cup', 'cup', 'pack', 'pack'],
    'rating': [4, 4, 4, 3.5, 15, 5]})
print(df)
print(any(df.duplicated()))

print(df.drop_duplicates())
##print(df.drop_duplicates(inplace =True))

     brand style  rating
0   YumYum   cup     4.0
1   YumYum   cup     4.0
2   YumYum   cup     4.0
3  Indomie   cup     3.5
4  Indomie  pack    15.0
5  Indomie  pack     5.0
True
     brand style  rating
0   YumYum   cup     4.0
3  Indomie   cup     3.5
4  Indomie  pack    15.0
5  Indomie  pack     5.0

上述例子中,使用了any(df.duplicated())判断数据集中是否有重复值,删除使用的是df.drop_duplicates(),一切参数都是默认的,需要注意的是如果你重新打印df结果和第一次一样,因为df.drop_duplicates()中inplace默认为False,如果你真的想删除重复值可以设置inplace =True;

对缺失值的识别及处理

对缺失值(python中为NaN)识别一般用df.isnull(),对缺失值的处理一般有删除和填充两种方法,删除的话一般使用df.dropna()函数
填充的话一般使用df.fillna()来填充缺失值。

df.dropna()

df.dropna() 方法可以用来删除DataFrame中包含任何NaN值的行或列。默认情况下,它会删除包含至少一个NaN值的行。
基本用法:

# 删除包
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值