- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
PythonPandas库数据清洗的10个高效技巧
一、引言:数据清洗是数据分析的“前置必修课”
在数据分析的流程中,数据清洗是最基础却最耗时的环节——据统计,它通常占整个分析流程的60%以上。所谓“垃圾进,垃圾出”(GarbageIn,GarbageOut),如果输入的是包含缺失值、重复值、异常值的“脏数据”,再复杂的模型也无法输出可靠结果。而Python的Pandas库,作为数据处理的“瑞士军刀”,凭借其灵活的函数和高效的运算能力,成为数据清洗的首选工具。
本文将结合实际业务场景,分享10个Pandas数据清洗的高效技巧,覆盖从缺失值识别到自动化流程的全链路。这些技巧不是孤立的“操作手册”,而是一套“问题-解决方案”的闭环体系,帮助你从“重复劳动”中解放,聚焦于数据价值的挖掘。
二、精准定位与处理缺失值:从识别到填充的闭环
缺失值是数据清洗中最常见的问题,它可能来自数据录入错误、系统故障或样本遗漏。处理缺失值的核心是“先识别分布,再针对性填充”,而非一概而论的“均值填充”。
(一)缺失值的识别方法
Pandas提供了3种核心识别工具:
isnull()+sum():统计缺失数量
用df.isnull()返回布尔值DataFrame(True代表缺失),再用sum()统计每列的缺失值数量。例如df.isnull().sum(),能快速定位“哪列缺失最严重”——比如“客户邮箱”列缺失20%,“订单金额”列缺失5%。
info():查看非空计数与类型
()会列出每列的非空值数量和数据类型,比如“客户年龄”列显示“非空值:800/1000”,说明有200条缺失;同时能发现“日期”列存为object类型(本应是datetime),为后续类型转换埋下伏笔。
可视化工具:直观看分布
借助missingno库(需额外安装)的matrix()函数,能生成缺失值分布矩阵——白色横线代表缺失值。比如missingno.matrix(df),若“客户地址”列的白色横线集中在某几行,说明这些行的地址信息完全缺失。
(二)缺失值的针对性填充策略
填充缺失值的关键是“匹配数据类型与业务逻辑”:
数值型数据(如“订单金额”“客户年龄”):
若数据分布对称(无极端值),用均值填充(df[订单金额].fillna(df[订单金额].mean(),inplace=True));若有异常值(如“客户年龄”出现100岁以上),用中位数填充(df[客户年龄].fillna(df[客户年龄].median(),inplace=True)),更抗干扰。
分类型数据(如“客户性别”“产品类别”):
用众数填充(df[客户性别].fillna(df[客户性别].mode()[0],inplace=True))——众数是出现次数最多的类别,最符合分类数据的分布特征(注意mode()返回Series,需取第一个元素)。
时间序列数据(如“销售日期”“物流时间”):
用前后值填充(df[销售日期].fillna(method=ffill,inplace=True),向前填充用前一天的值;bfill向后填充);若为连续时间序列(如hourly销售额),用线性插值(df[销售额].interpolate(method=linear,inplace=True)),根据前后值的线性关系计算缺失值,比均值更贴合趋势。
三、一键去重与深度核查:告别重复数据的干扰
重复数据会导致统计结果虚高(比如重复订单让“订单量”翻倍),或模型过拟合(重复样本强化了错误模式)。处理重复数据的核心是“区分‘完全重复’与‘部分重复’”。
(一)快速识别重复记录
Pandas的duplicated()函数是识别重复的“利器”:
默认判断所有列相同的记录为重复,返回布尔值Series(True代表重复);
用subset参数指定关键列(如“客户ID+订单ID”),仅判断这些列重复的记录——df.duplicated(subset=[客户ID,订单ID],keep=first)(keep=first保留第一条,标记后续为重复)。
drop_duplicates()则直接删除重复记录:df.drop_duplicates(subset=[客户ID,订单ID],keep=first,inplace=True),一键清理重复订单。
(二)重复数据的深层处理
有时重复数据并非“完全相同”,而是部分字段重复但需合并信息——比如客户表中,同一客户有两条记录:一条有“手机号”,另一条有“邮箱”。这时不能直接删除,需用groupby()+agg()合并:
python
df_clean=df.groupby(‘客户ID’).agg(
手机号=(‘手机号’,‘first’),
取第一个非空手机号
邮
您可能关注的文档
- 租房合同纠纷诉讼流程.docx
- 2025年深度学习工程师考试题库(附答案和详细解析)(1231).docx
- 2025年碳排放管理师考试题库(附答案和详细解析)(1228).docx
- 2025年西式面点师考试题库(附答案和详细解析)(1225).docx
- 2025年信息治理专家考试题库(附答案和详细解析)(1229).docx
- 2025年智慧城市设计师考试题库(附答案和详细解析)(1214).docx
- 2025年智能家居工程师考试题库(附答案和详细解析)(1229).docx
- 2025年智能制造工程师考试题库(附答案和详细解析)(1224).docx
- 2025年注册建筑师考试题库(附答案和详细解析)(1215).docx
- 2025年注册土木工程师考试题库(附答案和详细解析)(1227).docx
最近下载
- 煤田钻孔基础资料表格.doc VIP
- 2023-2024学年山东省济南市高二(上)期末化学试卷+答案解析(附后).pdf VIP
- 钢结构吊装应急救援预案.doc VIP
- 嵌入式系统设计(基于STM32F4)徐灵飞习题答案.docx VIP
- 等保2完整版本.0二级三级区别与测评项对比.pdf VIP
- 光伏发电项目预算书.pdf VIP
- 期末测试卷(二)(试题)-五年级数学上册北师大版.docx VIP
- 国家建筑标准设计图集22G101-3 混凝土结构施工图平面整体表示方法制图规则和构造详图(独立基础、条形基础、筏形基础、桩基础).pdf VIP
- 昆明市第一中学2026届高三年级第五次联考数学+答案.pdf
- 军人离婚怎么写协议书.docx VIP
原创力文档


文档评论(0)