Pandas Bootcamp
首页特训项目关于开始学习
01
电商销售数据质检审计
入门
02
基于购物车的复购行为与商品关联预测
入门
03
RFM 模型与用户价值聚类分层
进阶
04
AIGC 训练语料库去偏与去噪
进阶
05
游戏玩家行为序列与留存漏斗分析
进阶
06
金融信贷反欺诈特征工程
高级
07
IoT 传感器时序数据异常检测
高级
08
多源数据融合与主数据治理
进阶
09
AI 数据质量监控与血缘追踪
高级
10
AI 辅助数据自动化分析与故事化报告
高级
返回首页
PROJECT 01入门

电商销售数据质检审计

E-commerce Sales Data QA Audit

对电商销售数据进行完整的质量审计流程,包括缺失值处理、异常值检测与数据标准化。

缺失值处理IQR 异常检测Z-Score数据标准化MinMaxScaler

项目背景

某电商平台在季度财报前夕,需要对 Q3 销售数据进行质量审计,以确保财报数据的准确性。数据中存在缺失订单金额、异常退货数量和格式不统一的日期字段。

模拟数据集

order_id,product_name,category,quantity,unit_price,total_amount,order_date,return_count
1001,无线鼠标,电子产品,2,89.90,179.80,2024-07-01,0
1002,机械键盘,电子产品,1,,599.00,2024-07-01,1
1003,USB 数据线,配件,5,15.00,75.00,2024/07/02,0
1004,显示器,电子产品,1,2499.00,2499.00,2024-07-02,0
1005,鼠标垫,配件,3,29.90,,2024-07-03,99
1006,,电子产品,1,199.00,199.00,2024-07-03,0
1007,耳机,配件,2,399.00,798.00,2024.07.04,1
1008,笔记本,电子产品,-1,5999.00,-5999.00,2024-07-04,0

代码练习区

在下方编辑器中编写你的 Pandas 代码。可记录笔记、编写伪代码,参考答案在下方。

pandas_exercise.py
Loading...

参考答案

reference_solution.py
import pandas as pd
import numpy as np
from scipy import stats

# 1. 加载数据
df = pd.read_csv('sales_data.csv')

# 2. 缺失值处理
# 查看缺失情况
print(df.isnull().sum())

# 数值列用中位数填充
df['unit_price'].fillna(df['unit_price'].median(), inplace=True)
df['total_amount'].fillna(df['quantity'] * df['unit_price'], inplace=True)

# 分类列用众数填充
df['product_name'].fillna(df['product_name'].mode()[0], inplace=True)

# 3. IQR 异常值检测
Q1 = df['return_count'].quantile(0.25)
Q3 = df['return_count'].quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
outliers_iqr = df[(df['return_count'] < lower_bound) | (df['return_count'] > upper_bound)]
print(f"IQR 检测异常值: {len(outliers_iqr)} 条")

# 4. Z-Score 异常值检测
z_scores = np.abs(stats.zscore(df['quantity']))
outliers_z = df[z_scores > 3]

# 5. 日期标准化
df['order_date'] = pd.to_datetime(df['order_date'], format='mixed')

# 6. 删除负数数量的异常记录
df = df[df['quantity'] > 0]

业务解读

数据质检是数据分析的第一步。缺失值可能来自系统故障或用户未填写,需要根据业务逻辑选择填充策略。IQR 方法对偏态分布鲁棒,Z-Score 对正态分布有效。日期格式统一是数据合并的前提条件。