PythonPandas的‘数据清洗’常用函数.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

PythonPandas的‘数据清洗’常用函数

引言

在数据分析的全流程中,数据清洗是至关重要的基础环节。据统计,数据分析师60%-80%的时间都花在数据清洗上——这并非夸张,而是因为原始数据往往存在缺失、异常、格式混乱、重复等问题,直接影响后续建模与结论的准确性。Pandas作为Python中处理结构化数据的核心工具库,提供了丰富且强大的函数来解决这些问题。本文将围绕Pandas数据清洗的常用函数展开,按照“基础检查-缺失值处理-异常值处理-格式修正-重复值处理-文本清洗”的递进逻辑,结合具体场景与代码示例,系统梳理这些函数的使用方法与注意事项。

一、数据清洗前的基础检查:掌握数据“全貌”

数据清洗的第一步,是对数据有全面认知。就像医生看病前要先做基础检查,数据清洗也需要先了解数据的“健康状况”。Pandas中几个基础函数能快速帮我们完成这一步。

(一)数据概览:info()函数

info()函数是数据的“体检报告”,它能输出数据的整体信息,包括:数据行数与列数、每列的数据类型(如整数int、浮点数float、字符串object)、非空值数量、内存占用等。例如,当我们读取一个包含用户行为的CSV文件后,运行df.info(),可能会看到某列“年龄”的类型是object(本应是整数),这说明该列可能存在非数字字符;或者某列“注册时间”的非空值只有800个,而总行数是1000,这提示存在200个缺失值。这些信息能直接指引后续清洗方向——是先处理类型错误,还是优先填补缺失?

(二)统计摘要:describe()函数

如果说info()是“整体画像”,describe()则是“关键指标特写”。它默认对数值型列计算统计量,包括计数、均值、标准差、最小值、四分位数(25%、50%、75%)、最大值。通过观察这些数值,我们能快速发现异常:比如“身高”列的最大值是250cm,远超正常范围;或者“消费金额”的均值远大于中位数,说明数据可能存在右偏(即少数高消费记录拉高均值)。对于非数值型列,添加参数include=object后,describe()会统计唯一值数量、最常见值(top)及其出现次数(freq),这对文本类数据的清洗(如统一类别名称)很有帮助。

完成基础检查后,我们对数据的“病症”有了初步判断,接下来需要针对性处理最常见的“顽疾”——缺失值。

二、缺失值处理:填补数据的“漏洞”

缺失值是数据清洗中最普遍的问题,可能由数据采集失败、用户未填写、系统错误等原因导致。Pandas提供了一套完整的“检测-删除-填补”工具链。

(一)缺失值识别:isnull()与notnull()

isnull()函数会返回一个布尔型DataFrame,其中缺失值位置为True,非缺失值为False。配合sum()函数,我们可以快速统计每列的缺失数量:df.isnull().sum()。例如,某电商订单数据中,“评价内容”列缺失值为5000条,“支付时间”列缺失10条,这提示“评价内容”可能因用户未评价而缺失,而“支付时间”的缺失更可能是系统记录错误,需要重点核查。notnull()则是isnull()的反向操作,返回非缺失值的布尔标记,常用于筛选完整数据(如df[df[支付时间].notnull()])。

(二)缺失值删除:dropna()

当缺失值数量较少或缺失列对分析无关紧要时,直接删除是最简便的方法。dropna()函数支持多种删除策略:默认删除包含任意缺失值的行(how=any);若设置how=all,则只删除整行全为缺失值的记录;通过subset参数可指定仅检查特定列(如df.dropna(subset=[支付时间])只删除“支付时间”缺失的行)。需要注意的是,删除操作会减少样本量,可能导致数据偏差——例如,删除“年龄”缺失的用户行,可能让分析结果偏向于愿意填写年龄的群体,因此需谨慎评估删除的合理性。

(三)缺失值填补:fillna()

更多时候,我们需要填补缺失值以保留数据信息。fillna()函数提供了灵活的填补方式:

固定值填补:适用于明确已知的缺失原因。例如,用户未填写“性别”时,可用“未知”填补(df[性别].fillna(未知,inplace=True));某些设备未采集到的“温度”值,可用0填补(需结合业务场景判断是否合理)。

统计值填补:对数值型数据,常用均值、中位数或众数填补。例如,用均值填补“年龄”缺失值(df[年龄].fillna(df[年龄].mean(),inplace=True));若数据存在异常值,中位数比均值更稳健(因为均值易受极端值影响)。对分类数据,众数(出现次数最多的类别)是更合适的选择(如df[地区].fillna(df[地区].mode()[0],inplace=True))。

前后值填补:时

文档评论(0)

182****1636 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2025年12月12日上传了教师资格证

1亿VIP精品文档

相关文档