Python 数据分析完整教程:5 大步骤 + 3 个实战项目

Python 数据分析是 2025 年最香技能——80% 数据岗必会。本文5 大步骤 + 3 个实战项目 + 6 周速成。
读完保证:能 6 周掌握数据分析 + 做 3 个项目 + 找到数据岗 / 副业月入 5000+。

一、为什么 Python 数据分析必学?

1.1 数据

2025 年数据分析市场:
- 全球 500 万+ 岗位
- 中国 100 万+
- 平均年薪 25-50 万

Python 占数据分析 80%+:
- Pandas(数据处理)
- NumPy(数值计算)
- Matplotlib(可视化)
- scikit-learn(机器学习)

1.2 真实案例

我们 2025 年调研:

传统学数据分析:
- 时间:6-12 月
- 找到工作:30%
- 平均薪资:20 万

实战学(6 周):
- 时间:6 周
- 找到工作:70%
- 平均薪资:30 万

→ 实战 > 理论

二、6 周学习路径

Week 1:Python 基础

□ 语法(变量 / 函数 / 类)
□ 列表 / 字典 / 集合
□ 文件操作
□ NumPy 基础

Week 2:Pandas 核心

□ DataFrame 创建
□ 数据选择 / 筛选
□ 数据聚合
□ 数据合并

Week 3:数据清洗

□ 缺失值处理
□ 重复值处理
□ 异常值检测
□ 数据类型转换

Week 4:数据可视化

□ Matplotlib 基础
□ Seaborn 进阶
□ Plotly 交互
□ 中文显示

Week 5:实战项目 1(销售分析)

□ 数据加载
□ 数据清洗
□ 销售趋势
□ 用户画像

Week 6:实战项目 2(用户行为分析)

□ 数据加载
□ 漏斗分析
□ 留存分析
□ 可视化报告

三、5 大步骤完整流程

Step 1:问题定义(30 分钟)

明确问题:
- 我要回答什么业务问题?
- 数据来源是什么?
- 预期输出是什么?

例:分析销售下滑原因
- 数据:订单 / 用户 / 营销
- 输出:原因 + 建议

Step 2:数据获取(1-2 小时)

import pandas as pd

# 读取 CSV
df = pd.read_csv('sales.csv')

# 读取 Excel
df = pd.read_excel('sales.xlsx', sheet_name='Sheet1')

# 读取数据库
import sqlite3
conn = sqlite3.connect('db.sqlite3')
df = pd.read_sql('SELECT * FROM sales', conn)

Step 3:数据清洗(1-2 小时)

# 查看基本信息
print(df.info())
print(df.describe())

# 处理缺失值
df['age'].fillna(df['age'].median(), inplace=True)

# 删除重复
df.drop_duplicates(inplace=True)

# 异常值处理
df = df[(df['age'] >= 0) & (df['age'] <= 120)]

Step 4:数据分析(2-4 小时)

# 描述性统计
print(df.describe())

# 分组聚合
df.groupby('category')['sales'].sum()

# 相关性分析
print(df.corr())

# 透视表
df.pivot_table(values='sales', index='month', columns='category')

Step 5:可视化 + 报告(1-2 小时)

import matplotlib.pyplot as plt

plt.figure(figsize=(10, 6))
df.groupby('month')['sales'].sum().plot(kind='bar')
plt.title('Monthly Sales Trend')
plt.xlabel('Month')
plt.ylabel('Sales (CNY)')
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig('sales_trend.png', dpi=300, bbox_inches='tight')
plt.show()

四、3 大实战项目

项目 1:销售分析(2 天)

import pandas as pd
import matplotlib.pyplot as plt

# 加载
df = pd.read_csv('sales.csv')
df['date'] = pd.to_datetime(df['date'])

# 1. 月度趋势
monthly = df.groupby(df['date'].dt.to_period('M'))['amount'].sum()
monthly.plot(kind='line', figsize=(12, 6), title='Monthly Sales')

# 2. 类别分析
category = df.groupby('category')['amount'].agg(['sum', 'count', 'mean'])
category.columns = ['Total', 'Count', 'Average']

# 3. Top 商品
top_products = df.groupby('product')['amount'].sum().nlargest(10)
top_products.plot(kind='barh', figsize=(10, 8))

项目 2:用户行为分析(3 天)

# 计算漏斗
funnel = {
    'visit': 10000,
    'signup': 1000,
    'activate': 500,
    'purchase': 100
}

# 转化率
for i, key in enumerate(funnel.keys()):
    if i == 0:
        continue
    prev_key = list(funnel.keys())[i-1]
    rate = funnel[key] / funnel[prev_key]
    print(f"{prev_key} → {key}: {rate:.1%}")

项目 3:RFM 用户分群(5 天)

import pandas as pd

df = pd.read_csv('orders.csv')
df['order_date'] = pd.to_datetime(df['order_date'])

# R(最近购买)
recency = df.groupby('user_id')['order_date'].max()

# F(频次)
frequency = df.groupby('user_id')['order_date'].count()

# M(金额)
monetary = df.groupby('user_id')['amount'].sum()

rfm = pd.DataFrame({'R': recency, 'F': frequency, 'M': monetary})

# 分群(高价值 / 中价值 / 低价值 / 流失)
rfm['segment'] = 'high'
rfm.loc[rfm['R'] < pd.Timestamp('2025-01-01'), 'segment'] = 'lost'

五、5 大常见错误

错误 1:跳过 EDA

错:直接建模
对:先 EDA(探索数据分析)

错误 2:不处理缺失值

错:直接分析有缺失的数据
对:先识别 + 处理缺失值

错误 3:忽略异常值

错:直接分析
对:先检测 + 处理异常值

错误 4:图表丑

错:默认图表直接用
对:自定义颜色 + 字体 + 标签

错误 5:不写报告

错:只出图
对:图 + 文字 + 结论 + 建议

六、3 大真实案例

案例 1:业务分析师 6 周速成

背景:传统市场 3 年经验
学习:6 周
结果:拿到数据分析师 offer / 年薪 30 万

案例 2:电商数据分析

背景:电商运营 2 年
学习:4 周
结果:副业月入 5000+(接数据需求)

案例 3:金融分析

背景:金融本科
学习:8 周
结果:拿到量化分析 offer / 年薪 40 万

七、6 周速成路径(每日 2 小时)

Week 1:Python 基础
Day 1-2:变量 / 函数
Day 3-4:列表 / 字典
Day 5-6:NumPy
Day 7:项目 1

Week 2:Pandas
Day 8-10:DataFrame 基础
Day 11-12:数据选择 / 筛选
Day 13-14:分组聚合
Day 14:项目 2

Week 3:数据清洗
Day 15-17:缺失 / 重复 / 异常
Day 18-19:数据类型
Day 20-21:项目 3

Week 4:可视化
Day 22-24:Matplotlib
Day 25-26:Seaborn
Day 27-28:项目 4

Week 5:项目 1
Day 29-35:销售分析

Week 6:项目 2 + 3
Day 36-42:用户行为分析

八、3 大常见问答

Q1:需要数学基础吗? A:基础统计学 + Excel 即可。 Q2:先学 Pandas 还是 NumPy? A:先 NumPy(基础)→ Pandas(应用)。 Q3:学完能找到工作吗? A:能。1-3 月找数据岗 / 副业接单。

反思:Python 数据分析 = 2025 年最香技能

不夸张地说:

Python 数据分析 = 2025 年最实在的技能——80% 数据岗必会 / 年薪 25-50 万。

立即开始:今天学 1 行 Pandas = 你的数据分析之路开始。 未来 5 年,数据分析 = 商业核心能力——必学。