Pandas 数据处理实战:从数据清洗到分析建模的完整流程
1. 从脏数据到干净数据电商销售数据的清洗实战刚拿到手的电商销售数据往往像一团乱麻——缺失值、异常值、重复记录、格式混乱等问题比比皆是。我最近处理过一个典型数据集原始CSV文件打开后是这样的import pandas as pd raw_data pd.read_csv(ecommerce_sales.csv) print(raw_data.head(3)) # 输出示例 # Order ID Customer ID Order Date ... Quantity UnitPrice TotalPrice # 0 1001.0 CUST001 2023/5/1 ... 2.0 $29.9 $59.8 # 1 NaN NaN NaN ... NaN NaN NaN # 2 1002.0 CUST002 5/3/2023 ... 1.0 19.9 NaN数据清洗四部曲是我的标准处理流程处理缺失值先用isnull().sum()统计每列缺失情况。对于关键字段如订单ID缺失的行直接删除数值型字段用中位数填充分类字段用众数或Unknown标记。# 删除关键字段缺失的行 clean_data raw_data.dropna(subset[Order ID, Customer ID]).copy() # 填充数值型缺失值 clean_data[Quantity] clean_data[Quantity].fillna( clean_data[Quantity].median())统一数据格式日期列经常是重灾区需要用pd.to_datetime统一格式。价格字段中的货币符号也需要去除并转为数值类型。# 统一日期格式 clean_data[Order Date] pd.to_datetime( clean_data[Order Date], errorscoerce) # 处理价格字段 clean_data[UnitPrice] clean_data[UnitPrice].str.replace($, ).astype(float)处理异常值通过描述统计和箱线图发现异常比如数量为负数或单价过高的记录。我常用query()方法过滤clean_data clean_data.query(Quantity 0 and UnitPrice 1000)去重处理最后用drop_duplicates()去除完全重复的记录对于业务关键字段组合重复的记录需要根据业务规则处理。# 按订单ID去重保留最后一条记录 clean_data clean_data.drop_duplicates( subset[Order ID], keeplast)处理后的数据质量显著提升可以进入下一阶段。记得用to_csv()保存清洗结果并记录所有处理步骤——这是数据工程师的好习惯。2. 探索性分析发现数据中的黄金清洗后的数据就像未经雕琢的玉石探索性分析(EDA)就是我们的雕刻刀。我习惯从三个维度入手维度一基础统计特征# 快速获取数值型字段统计 print(clean_data.describe()) # 分类字段分布 print(clean_data[Product Category].value_counts(normalizeTrue))维度二时间趋势分析# 按周统计销售额趋势 weekly_sales clean_data.set_index(Order Date)[TotalPrice].resample(W).sum() weekly_sales.plot(titleWeekly Sales Trend);维度三多维交叉分析# 使用pivot_table分析各品类在各地区的销售表现 pd.pivot_table(clean_data, valuesTotalPrice, indexProduct Category, columnsRegion, aggfunc[sum, count])最近一个项目中通过EDA我发现周末的客单价比工作日高35%某品类在华东地区销量异常偏低后来发现是物流问题20%的用户贡献了80%的销售额这些发现直接影响后续的运营策略。记住好的EDA不仅要发现已知模式更要揭示未知问题。3. 特征工程为模型注入灵魂特征工程是建模成功的关键。对于电商数据我通常会构造以下几类特征时间特征clean_data[Order_DayOfWeek] clean_data[Order Date].dt.dayofweek clean_data[Is_Weekend] clean_data[Order_DayOfWeek] 5用户行为特征# 计算用户购买频次 user_stats clean_data.groupby(Customer ID).agg( Purchase_Freq(Order ID, count), Avg_Spend(TotalPrice, mean) ) clean_data clean_data.merge(user_stats, onCustomer ID)产品关联特征# 计算品类平均价格 category_avg clean_data.groupby(Product Category)[UnitPrice].mean() clean_data[Price_Ratio] clean_data[UnitPrice] / clean_data[Product Category].map(category_avg)高阶特征# 使用rolling计算移动平均 clean_data[7D_Avg_Spend] clean_data.groupby(Customer ID)[TotalPrice].transform( lambda x: x.rolling(7, min_periods1).mean())特征构造后一定要做标准化/归一化处理from sklearn.preprocessing import MinMaxScaler scaler MinMaxScaler() clean_data[[Avg_Spend, Price_Ratio]] scaler.fit_transform( clean_data[[Avg_Spend, Price_Ratio]])好的特征应该像好调料——能让模型的味道更鲜美。我曾通过构造用户价值分位数特征将RF模型的AUC提升了0.15。4. 建模准备数据分割与验证策略进入建模前还需要做好三件事数据分割时间序列数据要特别注意避免未来信息泄露# 按时间划分训练测试集 train clean_data[clean_data[Order Date] 2023-06-01] test clean_data[clean_data[Order Date] 2023-06-01]分类编码对于树模型用OrdinalEncoder线性模型用OneHotEncoderfrom sklearn.preprocessing import OrdinalEncoder encoder OrdinalEncoder() train[[Product Category]] encoder.fit_transform(train[[Product Category]]) test[[Product Category]] encoder.transform(test[[Product Category]])评估指标根据业务目标选择合适指标分类问题AUC、F1、Precision/Recall回归问题MAE、RMSE、R²排序问题NDCG、MAP最后用pd.get_dummies()处理分类变量确保训练集和测试集特征维度一致# 确保测试集包含训练集所有类别 final_train pd.get_dummies(train, columns[Region]) final_test pd.get_dummies(test, columns[Region]) final_test final_test.reindex(columnsfinal_train.columns, fill_value0)记住数据准备的质量决定模型效果的上限。花在数据上的时间最终都会在模型效果上回报给你。

相关新闻

利用出门散步间隙,顺势给孩子科普生活常识

利用出门散步间隙,顺势给孩子科普生活常识

许多家长苦于找不到合适的时间对孩子进行教育,总觉得需要正襟危坐地安排一段专门的学习时间才能开始。但其实,每天最寻常的散步时光,恰恰是传递生活常识的天然课堂。当孩子穿上鞋子、推开家门的那一刻,整个世界都变成了一本打开的…

2026/7/13 15:56:34 阅读更多 →
TVA具身智能的概念、架构与应用(8)

TVA具身智能的概念、架构与应用(8)

前沿技术探索:AI智能体视觉(TVA,Transformer-based Vision Agent)是依托Transformer架构与“因式智能体”理论所构建的颠覆性工业视觉技术,是集深度强化学习(DRL)、卷积神经网络(CNN…

2026/7/13 15:54:24 阅读更多 →
Popular Convention on Github:终极GitHub代码规范分析工具完全指南

Popular Convention on Github:终极GitHub代码规范分析工具完全指南

Popular Convention on Github:终极GitHub代码规范分析工具完全指南 【免费下载链接】popularconvention analyzing code convention from github commits for Github data challenge II 项目地址: https://gitcode.com/gh_mirrors/po/popularconvention 在当…

2026/7/13 15:54:24 阅读更多 →

最新新闻

未来荧黑字体完整指南:从算法字体到视觉设计的终极教程

未来荧黑字体完整指南:从算法字体到视觉设计的终极教程

未来荧黑字体完整指南:从算法字体到视觉设计的终极教程 【免费下载链接】glow-sans SHSans-derived CJK font family with a more concise & modern look. 未来荧黑未來熒黑ヒカリ角ゴ:基于思源黑体改造,拥有粗度和宽度系列,更…

2026/7/13 17:32:24 阅读更多 →
gl3w高级配置:启用扩展功能与自定义输出目录的实用技巧

gl3w高级配置:启用扩展功能与自定义输出目录的实用技巧

gl3w高级配置:启用扩展功能与自定义输出目录的实用技巧 【免费下载链接】gl3w Simple OpenGL core profile loading 项目地址: https://gitcode.com/gh_mirrors/gl/gl3w gl3w是一款轻量级的OpenGL核心配置文件加载器,能够帮助开发者轻松获取和管理…

2026/7/13 17:32:24 阅读更多 →
如何快速上手NVIDIA Kimi-K2.5-Thinking-Eagle3?完整部署指南与最佳实践

如何快速上手NVIDIA Kimi-K2.5-Thinking-Eagle3?完整部署指南与最佳实践

如何快速上手NVIDIA Kimi-K2.5-Thinking-Eagle3?完整部署指南与最佳实践 【免费下载链接】Kimi-K2.5-Thinking-Eagle3 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/Kimi-K2.5-Thinking-Eagle3 NVIDIA Kimi-K2.5-Thinking-Eagle3是一款基于深度优化…

2026/7/13 17:30:24 阅读更多 →
未来荧黑字体完整指南:从零开始掌握这款开源中文字体的终极教程

未来荧黑字体完整指南:从零开始掌握这款开源中文字体的终极教程

未来荧黑字体完整指南:从零开始掌握这款开源中文字体的终极教程 【免费下载链接】glow-sans SHSans-derived CJK font family with a more concise & modern look. 未来荧黑未來熒黑ヒカリ角ゴ:基于思源黑体改造,拥有粗度和宽度系列&…

2026/7/13 17:30:24 阅读更多 →
如何用GetQzonehistory找回被时间遗忘的QQ空间记忆

如何用GetQzonehistory找回被时间遗忘的QQ空间记忆

如何用GetQzonehistory找回被时间遗忘的QQ空间记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾深夜翻看QQ空间,却发现几年前的那些说说、那些青春印记早已消失不…

2026/7/13 17:30:24 阅读更多 →
深度解析:如何通过四层架构实现QQ空间历史数据安全备份

深度解析:如何通过四层架构实现QQ空间历史数据安全备份

深度解析:如何通过四层架构实现QQ空间历史数据安全备份 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字记忆日益重要的今天,QQ空间作为承载了亿万人青春回…

2026/7/13 17:30:24 阅读更多 →

日新闻

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改 【免费下载链接】palworld-save-tools Tools for converting Palworld .sav files to JSON and back 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools 你是否曾经想要调整Palwor…

2026/7/13 0:01:19 阅读更多 →
浦东旧模块回收哪家强?专业评测带你一探究竟

浦东旧模块回收哪家强?专业评测带你一探究竟

于科技迅猛飞速迭代的当下此刻, 旧模块的回收处置, 不但关联着资源的再度利用, 而且更牵扯到数据安全以及环保合规事宜。你是不是也正为那堆积得如同山峦般的旧模块而发愁? 是不是不清楚该怎样安全且高效地去处理它们? 别忧心烦恼, 就在今日, 我会以具备权威影响力的自媒体博…

2026/7/13 0:01:19 阅读更多 →
卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

1 研究背景与现存技术痛点(提出问题)基因工程、蛋白质组学、生物制药研发流程中,蛋白质分离纯化是决定下游实验成败的关键环节。当前实验室常规蛋白质分离纯化工艺存在三类难以标准化的技术瓶颈:传统离子交换、分子筛层析无特异性…

2026/7/13 0:05:20 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/13 4:38:36 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/13 4:38:38 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/13 4:38:40 阅读更多 →

月新闻