56 - 数据分析与可视化教程

适用人群:有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 AnalysisWes McKinney(Pandas作者)
Kaggle数据科学竞赛+免费数据集
DataCamp在线数据分析课程
Towards Data ScienceMedium数据科学专栏
返回首页