python中认识数据分析

📋 数据分析完整流程

一个标准的 Python 数据分析项目遵循以下 6 个核心阶段

数据获取

CSV · API · 数据库

数据清洗

缺失值 · 异常值

探索分析

EDA · 统计描述

数据可视化

图表 · 仪表盘

建模分析

ML · 统计模型

报告输出

结论 · 洞察

📥数据获取pandas.read_csv()🧹数据清洗dropna() / fillna()🔍探索分析describe() / corr()📊可视化plt.plot() / sns🤖建模分析sklearn / statsmodelsCSV/Excel/SQL/API缺失/重复/格式化分布/相关/分组折线/柱状/散点/热图回归/分类/聚类迭代优化

📦 核心库详解

Python 数据分析生态系统由以下六大核心库构成

N

NumPy

Numerical Python · v1.26+

Python 科学计算的基础库,提供高效的 N 维数组 (ndarray) 对象,支持向量化运算、广播机制和线性代数操作,是所有数值计算库的底层依赖。

运算速度95%

使用频率99%

数组运算线性代数傅里叶变换随机数

P

Pandas

Panel Data · v2.1+

数据分析的核心工具,提供 DataFrame 和 Series 数据结构,支持数据读取、清洗、合并、分组聚合、时序分析等全流程操作,被誉为"数据科学的瑞士军刀"。

数据处理98%

易用性90%

DataFrame数据清洗分组聚合时序

M

Matplotlib

可视化基础 · v3.8+

Python 最成熟的绘图库,提供类似 MATLAB 的绘图接口。支持折线图、散点图、柱状图、饼图等 数十种图表类型,可精细控制每一个图形元素。

图表种类92%

定制灵活度95%

折线图散点图子图3D绘图

S

Seaborn

统计可视化 · v0.13+

基于 Matplotlib 的高层次统计可视化库,内置 美观的配色方案,几行代码即可绘制热力图、箱线图、violin 图、回归图等,专为探索性数据分析设计。

美观度96%

代码简洁度94%

热力图箱线图回归图分布图

SK

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 数据可视化图表类型演示

语文数学英语物理化学8291769588各科平均分对比

柱状图 (Bar Chart)

用于比较不同类别的数值大小,适合展示各组之间的对比关系。代码:plt.bar()

1月2月3月4月5月今年去年月度销售趋势

折线图 (Line Chart)

展示数据随时间的变化趋势,支持多系列对比。代码:plt.plot()

异常值学习时长 (小时)成绩R²=0.87学习时长 vs 成绩散点图

散点图 + 回归线 (Scatter + Regression)

展示两个变量之间的相关关系,回归线显示趋势,R² 值衡量拟合度。代码:sns.regplot()

语文数学英语物理化学语文数学英语物理化学1.01.01.01.01.00.320.450.320.710.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

网址:http://127.0.0.1:7788/python_data_analysis.html

相关推荐
Highcharts.js2 小时前
Highcharts v13 全新时间轴标签边界格式|让时间维度表达更智能
前端·信息可视化·时间序列·图表开发·chart·自定义标签·可视化开发
AI玫瑰助手2 小时前
Python函数:函数的返回值(return)与多值返回
开发语言·python·信息可视化
专注VB编程开发20年4 小时前
Python爬虫、提取网页内容,免费调用谷歌翻译接口
爬虫·python·信息可视化
夜空孤狼啸5 小时前
Vue Data UI:这不是图表库,是数据可视化 UI 平台
vue.js·ui·信息可视化
智联视频超融合平台5 小时前
多模态大模型+AR可视化:让电力巡检“看懂“设备、“想明白“缺陷
信息可视化·视觉检测·ar
Metaphor6921 天前
使用 Python 在 Excel 中查找并高亮显示
python·信息可视化·excel
古月开发1 天前
比价助手:截图自动全网比价与历史价格查询实战
人工智能·信息可视化·自动化
Ulyanov1 天前
深入QML滑块与进度控制:构建动态数据可视化界面:QML+PySide6现代开发入门(六)
开发语言·python·算法·ui·信息可视化·雷达电子对抗仿真
码界筑梦坊2 天前
282-基于Python的豆瓣音乐可视化分析推荐系统
开发语言·python·信息可视化·数据分析·flask·vue