📊 2026 完整指南

Python 数据分析
从入门到实战

掌握数据清洗、探索性分析、可视化与建模,用 Python 解锁数据背后的价值

NumPy Pandas Matplotlib Scikit-learn Seaborn Jupyter
6+
核心分析库
5
分析流程阶段
20+
代码示例
10M+
全球数据科学家使用
📋 数据分析完整流程
一个标准的 Python 数据分析项目遵循以下 6 个核心阶段
📥
数据获取
CSV · API · 数据库
🧹
数据清洗
缺失值 · 异常值
🔍
探索分析
EDA · 统计描述
📊
数据可视化
图表 · 仪表盘
🤖
建模分析
ML · 统计模型
📝
报告输出
结论 · 洞察
📥 数据获取 pandas.read_csv() 🧹 数据清洗 dropna() / fillna() 🔍 探索分析 describe() / corr() 📊 可视化 plt.plot() / sns 🤖 建模分析 sklearn / statsmodels CSV/Excel/SQL/API 缺失/重复/格式化 分布/相关/分组 折线/柱状/散点/热图 回归/分类/聚类 迭代优化
📦 核心库详解
Python 数据分析生态系统由以下六大核心库构成
NumPy
Numerical Python · v1.26+
Python 科学计算的基础库,提供高效的 N 维数组 (ndarray) 对象,支持向量化运算、广播机制和线性代数操作,是所有数值计算库的底层依赖。
运算速度95%
使用频率99%
数组运算线性代数傅里叶变换随机数
Pandas
Panel Data · v2.1+
数据分析的核心工具,提供 DataFrame 和 Series 数据结构,支持数据读取、清洗、合并、分组聚合、时序分析等全流程操作,被誉为"数据科学的瑞士军刀"。
数据处理98%
易用性90%
DataFrame数据清洗分组聚合时序
Matplotlib
可视化基础 · v3.8+
Python 最成熟的绘图库,提供类似 MATLAB 的绘图接口。支持折线图、散点图、柱状图、饼图等 数十种图表类型,可精细控制每一个图形元素。
图表种类92%
定制灵活度95%
折线图散点图子图3D绘图
Seaborn
统计可视化 · v0.13+
基于 Matplotlib 的高层次统计可视化库,内置 美观的配色方案,几行代码即可绘制热力图、箱线图、violin 图、回归图等,专为探索性数据分析设计。
美观度96%
代码简洁度94%
热力图箱线图回归图分布图
Scikit-learn
机器学习 · v1.4+
Python 机器学习的标准库,提供分类、回归、聚类、降维等 数百种算法,统一的 fit/predict 接口让模型切换极为便捷,也包含完整的评估与交叉验证工具。
算法覆盖97%
生产稳定性98%
分类回归聚类降维
Jupyter Notebook
交互式开发环境
数据科学家首选的 交互式开发环境,支持在单元格中混合执行代码、展示图表、编写 Markdown 文档,方便探索和分享数据分析过程。
交互性99%
可分享性96%
交互执行Markdown图表内嵌nbconvert
💻 实战代码示例
从数据读取到可视化的完整代码演示

① 数据读取 & 基础探索

01_load_and_explore.py
import pandas as pd
import numpy as np

# 读取 CSV 数据
df = pd.read_csv('students.csv')

# 查看基本信息
print(df.shape)        # (行数, 列数)
print(df.dtypes)       # 每列数据类型
print(df.head(5))      # 前5行

# 统计摘要
print(df.describe())

# 检查缺失值
print(df.isnull().sum())

# 各科均值
avg = df[['数学', '英语', '语文']].mean()
print(avg)
📌 关键 API 速查
方法作用
read_csv()读取 CSV 文件
df.shape返回 (行, 列) 元组
df.describe()数值列统计摘要
df.isnull()检测缺失值
df.dtypes每列数据类型
df.head(n)查看前 n 行

② 数据清洗 & 预处理

02_data_cleaning.py
# 填充缺失值
df['成绩'].fillna(df['成绩'].mean(), inplace=True)

# 删除含缺失值的行
df.dropna(subset=['姓名', '班级'], inplace=True)

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

# 数据类型转换
df['成绩'] = df['成绩'].astype(float)
df['日期'] = pd.to_datetime(df['日期'])

# 过滤异常值(Z-score法)
z = (df['成绩'] - df['成绩'].mean()) / df['成绩'].std()
df = df[z.abs() <= 3]

# 重命名列
df.rename(columns={'score': '成绩'}, inplace=True)
⚠️ 缺失值处理策略
均值/中位数填充:适合数值型数据,保留样本
众数填充:适合分类型数据
前向/后向填充:适合时序数据
直接删除:缺失率低且随机缺失时
💡 异常值检测方法
Z-score法:|z| > 3 视为异常(正态分布)
IQR法:超出 Q1-1.5×IQR 或 Q3+1.5×IQR
业务规则:如成绩必须在 0~100

③ 数据可视化代码

03_visualization.py
import matplotlib.pyplot as plt
import seaborn as sns

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']

# 1. 折线图(趋势)
plt.plot(df['月份'], df['销售额'],
         marker='o', color='#3b82f6')
plt.title('月度销售趋势')

# 2. 热力图(相关性)
corr = df.corr()
sns.heatmap(corr, annot=True,
             cmap='coolwarm', center=0)

# 3. 箱线图(分布)
sns.boxplot(x='班级', y='成绩', data=df,
             palette='Set2')

# 4. 散点回归图
sns.regplot(x='学习时长', y='成绩',
             data=df, scatter_kws={'alpha':0.5})

plt.tight_layout()
plt.savefig('analysis.png', dpi=150)
📊 常见图表选择指南
数据目的推荐图表函数
时间趋势折线图plt.plot()
类别比较柱状图plt.bar()
分布形状直方图plt.hist()
相关关系散点图plt.scatter()
变量相关热力图sns.heatmap()
离群值箱线图sns.boxplot()
占比构成饼图plt.pie()
📈 可视化图表图解
常用 Python 数据可视化图表类型演示
语文 数学 英语 物理 化学 82 91 76 95 88 各科平均分对比
柱状图 (Bar Chart)
用于比较不同类别的数值大小,适合展示各组之间的对比关系。代码:plt.bar()
1月 2月 3月 4月 5月 今年 去年 月度销售趋势
折线图 (Line Chart)
展示数据随时间的变化趋势,支持多系列对比。代码:plt.plot()
异常值 学习时长 (小时) 成绩 R²=0.87 学习时长 vs 成绩散点图
散点图 + 回归线 (Scatter + Regression)
展示两个变量之间的相关关系,回归线显示趋势,R² 值衡量拟合度。代码:sns.regplot()
语文 数学 英语 物理 化学 语文 数学 英语 物理 化学 1.0 1.0 1.0 1.0 1.0 0.32 0.45 0.32 0.71 0.68
热力图 (Heatmap)
用颜色深浅表示变量间的相关系数,快速发现强相关特征对。代码:sns.heatmap(df.corr())
🤖 从数据到模型
Scikit-learn 标准机器学习工作流详解
04_machine_learning.py
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, r2_score

# ① 准备特征和标签
X = df[['学习时长', '出勤率', '作业完成率']]
y = df['是否优秀']

# ② 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42)

# ③ 特征标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test  = scaler.transform(X_test)

# ④ 训练模型
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)

# ⑤ 预测与评估
y_pred = model.predict(X_test)
print(accuracy_score(y_test, y_pred))  # 0.92
🔵 监督学习算法
📈
线性回归 — 连续值预测,可解释性强
🌲
随机森林 — 分类/回归,抗过拟合
🎯
SVM — 高维数据,效果稳定
🧠
XGBoost — 竞赛利器,效果卓越
🟢 无监督学习算法
🔵
K-Means — 聚类分析,简单高效
📉
PCA — 降维,去除冗余特征
🕸️
DBSCAN — 密度聚类,检测异常
🗺️
t-SNE — 高维可视化降维
📐 模型评估指标速查
分类任务
准确率 accuracy_score
精确率 precision_score
召回率 recall_score
F1 f1_score
回归任务
r2_score
MAE mean_absolute_error
MSE mean_squared_error
RMSE √MSE
验证方法
Hold-out 简单划分
K-fold CV 交叉验证
Learning curve 诊断偏差/方差
混淆矩阵 分类详情
🗺️ 学习路径建议
从零基础到数据分析工程师的系统学习路线
1

Python 基础语法(2-4周)

变量与数据类型、列表/字典/元组、函数与类、文件读写、异常处理。推荐资源:《Python编程:从入门到实践》

2

NumPy 与 Pandas 基础(2-3周)

数组操作、DataFrame 增删改查、数据合并(merge/concat)、分组聚合(groupby)、时间序列处理。

3

数据可视化(1-2周)

Matplotlib 基础绘图、Seaborn 统计图表、图表美化技巧、交互式图表(Plotly/Pyecharts)。

4

统计分析基础(2-3周)

描述统计、概率分布、假设检验、相关分析、方差分析。工具:SciPy、Statsmodels。

5

机器学习入门(4-6周)

Scikit-learn 工作流、线性模型/树模型/集成模型、特征工程、模型选择与调参。推荐:Kaggle 入门竞赛练习。

6

实战项目(持续)

完成 2-3 个端到端项目(销售分析、用户画像、预测模型),整理到 GitHub,参加 Kaggle 竞赛。

📋 Pandas 常用操作速查
日常数据分析中最常用的 Pandas 操作汇总
操作类型 代码示例 说明
读取数据pd.read_csv('f.csv', encoding='utf-8')读取 CSV,指定编码
选择列df[['A','B']]选取多列
条件过滤df[df['成绩'] > 80]按条件筛选行
新增列df['总分'] = df['数学'] + df['语文']通过计算新增列
分组聚合df.groupby('班级')['成绩'].mean()按班级求均值
数据合并pd.merge(df1, df2, on='学号')按学号内连接
透视表df.pivot_table(values='成绩', index='班级', columns='科目', aggfunc='mean')多维聚合
排序df.sort_values('成绩', ascending=False)按成绩降序
应用函数df['等级'] = df['成绩'].apply(lambda x: '优' if x>=90 else '良')自定义映射
导出数据df.to_excel('result.xlsx', index=False)导出 Excel