数据分析是现代数据科学和商业决策中的基础环节。本文以Python中两个最重要的库——NumPy和pandas为工具,结合模拟生成的销售数据,分10个阶段详尽展示一个完整的数据分析流程。每个阶段配有具体代码和操作说明,帮助你系统掌握数据分析实战技巧。
目录
1. 模拟数据生成
在没有真实数据时,模拟数据是学习和测试的好帮手。这里生成一份包含1000条销售记录的表格,字段包含:
-
date:销售日期,连续日期
-
category:产品类别(A、B、C)
-
region:销售地区(North、South、East、West)
-
sales:销售额(服从正态分布)
-
quantity:销售数量(服从泊松分布)
同时故意让部分销售额缺失,模拟真实场景。
import numpy as np
import pandas as pd
np.random.seed(42) # 固定随机种子保证复现
n = 1000
dates = pd.date_range(start='2023-01-01', periods=n, freq='D')
categories = np.random.choice(['A', 'B', 'C'], size=n, p=[0.4, 0.35, 0.25])
regions = np.random.choice(['North', 'South', 'East', 'West'], size=n)
sales = np.random.normal(loc=1000, scale=300, size=n).round(2)
quantity = np.random.poisson(lam=5, size=n)
# 制造50个销售额缺失值
sales[np.random.choice(n, 50, replace=False)] = np.nan
df = pd.DataFrame({
'date': dates,
'category': categories,
'region': regions,
'sales': sales,
'quantity': quantity
})
print(df.head())
2. 数据导入与初步观察
完成数据载入后,第一步是快速浏览数据结构:
-
head()查看前几行数据,了解字段和样本类型; -
info()查看每列数据类型及非空数量,识别缺失值; -
describe()获得数值型字段的统计汇总,如均值、标准差、最大最小值。print(df.info()) print(df.describe())初步发现数据缺失、字段类型、分布范围,为后续处理做准备。
3. 数据清洗:缺失值处理
缺失值常见于真实数据,若不处理会导致分析偏差或报错。常用处理方式:
-
删除缺失数据行(简单粗暴,可能丢失重要信息);
-
用统计量填充(均值、中位数、众数等);
-
根据业务逻辑填充或插值。
本文选择用销售额均值填充:
print(df.isnull().sum()) # 查看缺失情况
mean_sales = df['sales'].mean()
df['sales'].fillna(mean_sales, inplace=True) # 均值填充
print(f"填充后的销售额均值:{mean_sales:.2f}")
4. 数据转换:类型转换
正确的数据类型便于计算和分析,特别是:
-
日期列应转换为
datetime类型,支持时间序列操作; -
分类字段转换为
category类型,节省内存并提升性能; -
数值字段确保是合适的数值类型。
df['date'] = pd.to_datetime(df['date'])
df['category'] = df['category'].astype('category')
df['region'] = df['region'].astype('category')
df['quantity'] = df['quantity'].astype(int)
print(df.dtypes)

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



