处理缺失值、异常值,格式化时间序列,计算总价
使用 retail_orders.csv 数据集,包含订单ID、产品、数量、价格、地区、日期等信息。
数据清洗(Data Cleaning)是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。
为什么需要数据清洗?
学习导入 Pandas 和 NumPy 库
import pandas as pd import numpy as np
使用 pd.read_csv() 读取 CSV 文件
# 读取CSV文件 df = pd.read_csv('retail_orders.csv') # 查看前5行数据 print(df.head())
使用4个关键命令快速认识数据
# 查看数据基本信息 print(df.info()) # 查看统计描述 print(df.describe()) # 查看数据形状 print(df.shape) # 查看列名 print(df.columns)
缺失值是数据分析中常见的问题,需要特别处理。
# 检查每列的缺失值数量 print(df.isnull().sum()) # 用均值填充数值型列 df['quantity'] = df['quantity'].fillna(df['quantity'].mean()) # 用中位数填充价格列 df['price'] = df['price'].fillna(df['price'].median()) # 删除包含缺失值的行 df_clean = df.dropna() # 用特定值填充 df['quantity'] = df['quantity'].fillna(0)
删除完全相同的行,避免重复统计
# 检查重复行数 print(df.duplicated().sum()) # 删除重复行 df = df.drop_duplicates() # 检查删除后的形状 print(df.shape)
将字符串转换为日期格式,便于时间序列分析
# 转换日期格式 df['order_date'] = pd.to_datetime(df['order_date']) # 提取年份 df['year'] = df['order_date'].dt.year # 提取月份 df['month'] = df['order_date'].dt.month # 提取星期几 df['weekday'] = df['order_date'].dt.weekday print(df[['order_date', 'year', 'month']].head())
通过现有特征计算新特征,如总价
# 计算订单总价 df['total'] = df['quantity'] * df['price'] # 计算单价(如果需要) df['unit_price'] = df['price'] / df['quantity'] print(df[['product', 'quantity', 'price', 'total']].head())
在下方代码编辑器中编写并运行完整的数据清洗代码: