适用人群:有Python基础,想做数据相关工作
难度:中低
预计学习时间:20-30小时
为什么学数据分析?
| 场景 | 说明 |
|---|
| 商业决策 | 用数据驱动业务增长 |
| 产品优化 | 用户行为分析、AB测试 |
| 就业方向 | 数据分析师、数据科学家 |
| 通用技能 | 几乎所有行业都需要 |
学习路线
第1阶段:NumPy基础(1周)
├── 数组创建与操作
├── 数学运算
├── 索引与切片
└── 广播机制
第2阶段:Pandas数据处理(2周)
├── DataFrame与Series
├── 数据读取(CSV/Excel/SQL)
├── 数据清洗(缺失值/异常值/重复值)
├── 数据转换(apply/map/applymap)
├── 分组聚合(groupby)
└── 数据合并(merge/concat/join)
第3阶段:数据可视化(2周)
├── Matplotlib基础图表
├── Seaborn统计图表
├── Plotly交互式图表
├── 图表美化与配色
└── Dashboard制作
第4阶段:实战项目(2周)
├── 电商销售分析
├── 用户画像分析
├── 股票数据分析
└── 爬虫数据可视化
核心代码示例
# NumPy
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr.mean()) # 3.0
print(arr.std()) # 1.414
print(arr * 2) # [2, 4, 6, 8, 10]
# Pandas
import pandas as pd
# 读取数据
df = pd.read_csv('sales.csv')
# 查看数据
print(df.head()) # 前5行
print(df.info()) # 数据类型和缺失值
print(df.describe()) # 统计摘要
# 数据清洗
df = df.dropna() # 删除缺失行
df['price'] = df['price'].fillna(0) # 填充缺失值
df = df.drop_duplicates() # 删除重复行
df['date'] = pd.to_datetime(df['date']) # 转换日期类型
# 数据分析
# 按月汇总销售额
df['month'] = df['date'].dt.to_period('M')
monthly_sales = df.groupby('month')['amount'].sum()
# 按类别统计
category_stats = df.groupby('category').agg({
'amount': ['sum', 'mean', 'count'],
'profit': 'sum'
})
# 排序和筛选
top_products = df.groupby('product')['amount'].sum().sort_values(ascending=False).head(10)
high_value = df[df['amount'] > 1000]
# 数据可视化
import matplotlib.pyplot as plt
import seaborn as sns
# 折线图
plt.figure(figsize=(12, 6))
monthly_sales.plot(kind='line', marker='o')
plt.title('月度销售额趋势')
plt.xlabel('月份')
plt.ylabel('销售额')
plt.savefig('monthly_sales.png', dpi=150)
# 柱状图
plt.figure(figsize=(10, 6))
top_products.plot(kind='barh')
plt.title('Top 10 畅销产品')
plt.tight_layout()
# Seaborn统计图
sns.set_style('whitegrid')
sns.boxplot(data=df, x='category', y='amount')
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
# Plotly交互图
import plotly.express as px
fig = px.scatter(df, x='price', y='sales', color='category',
size='profit', hover_data=['product'])
fig.show()
# 数据导出
df.to_excel('report.xlsx', index=False)
df.to_csv('clean_data.csv', index=False)
常用图表选择指南
| 分析目的 | 推荐图表 | 库 |
|---|
| 趋势变化 | 折线图 | Matplotlib |
| 数量对比 | 柱状图 | Seaborn |
| 占比分布 | 饼图/环形图 | Matplotlib |
| 相关关系 | 散点图/热力图 | Seaborn |
| 分布情况 | 直方图/箱线图 | Seaborn |
| 地理数据 | 地图 | Plotly |
| 多维数据 | 平行坐标图 | Plotly |
| 交互式 | 所有类型 | Plotly |
推荐资源
| 资源 | 说明 |
|---|
| Python for Data Analysis | Wes McKinney(Pandas作者) |
| Kaggle | 数据科学竞赛+免费数据集 |
| DataCamp | 在线数据分析课程 |
| Towards Data Science | Medium数据科学专栏 |