【Python】【数据分析】Python 数据分析与可视化:全面指南

【Python 数据分析与可视化】全面指南(2026 最新版)

这是一篇从入门到进阶、结构化的实战指南,适合数据分析师、数据科学家、业务分析师和 Python 爱好者。

1. 核心技术栈(2026 年推荐)

层级库/工具主要用途推荐程度
基础NumPy数组计算★★★★★
核心pandas数据清洗、处理、分析★★★★★
可视化基础Matplotlib底层绘图★★★★★
可视化进阶Seaborn统计图表、美观样式★★★★★
交互可视化Plotly / Plotly Express交互式图表、仪表盘★★★★★
现代可视化Altair、Polars + Great Tables声明式、极速 DataFrame★★★★
科学计算SciPy、Statsmodels统计检验、建模★★★★
机器学习scikit-learn基础建模★★★★★
大数据Polars、Dask、PySpark超大数据集★★★★

安装推荐(使用 conda 或 uv 更快):

# 推荐方式
conda create -n data python=3.11
conda activate data
pip install pandas numpy matplotlib seaborn plotly jupyter polars[all] scikit-learn

2. 数据分析完整工作流(CRISP-DM 简化版)

  1. 定义问题 → 2. 数据获取 → 3. 数据清洗 → 4. 探索性分析 (EDA) → 5. 特征工程 → 6. 建模/可视化 → 7. 解读与沟通

3. pandas 核心操作(最常用)

import pandas as pd
import numpy as np

# 读取数据
df = pd.read_csv('data.csv', parse_dates=['date'])
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

# 基本信息
df.head()
df.info()
df.describe(include='all')
df.shape

# 选择数据
df[['col1', 'col2']]
df.loc[:, 'col1':'col3']
df.iloc[0:10, [0, 2]]

# 清洗
df.dropna(subset=['col'])
df.fillna(value)
df.drop_duplicates()

# 转换
df['new_col'] = df['col1'] + df['col2']
df['date'] = pd.to_datetime(df['date'])

# 分组与聚合
df.groupby('category').agg({
    'sales': ['sum', 'mean', 'count'],
    'profit': 'max'
}).round(2)

2026 新趋势:强烈建议学习 Polars(速度远超 pandas):

import polars as pl
df = pl.read_csv('data.csv')

4. 探索性数据分析(EDA)关键技巧

  • 单变量分析:直方图、箱线图、频数统计
  • 多变量分析:散点图、相关性热力图、成对关系图
  • 时间序列:趋势、季节性、异常点
# 相关性热力图
import seaborn as sns
import matplotlib.pyplot as plt

corr = df.select_dtypes(include='number').corr()
sns.heatmap(corr, annot=True, cmap='coolwarm', center=0)
plt.title('Correlation Heatmap')
plt.show()

5. 可视化全家桶

Matplotlib + Seaborn(基础必会)

sns.set_style("whitegrid")   # 美化样式

# 常用图表
sns.histplot(data=df, x='sales', hue='category', kde=True)
sns.boxplot(x='category', y='sales', data=df)
sns.scatterplot(x='advertising', y='sales', hue='region', data=df)
sns.lineplot(x='date', y='sales', data=df)

Plotly 交互式可视化(强烈推荐)

import plotly.express as px

fig = px.scatter(df, x='GDP', y='Life Expectancy', 
                 color='Continent', size='Population',
                 hover_name='Country', 
                 title='Global Development')
fig.show()

# 仪表盘级图表
fig = px.treemap(df, path=['continent', 'country'], values='population')

其他高级图表

  • 桑基图(Sankey):用户路径分析
  • 地理可视化:px.choroplethfoliumgeopandas
  • 3D / 动画:Plotly 支持

6. 完整项目实战流程示例

# 1. 导入
import pandas as pd
import seaborn as sns
import plotly.express as px

# 2. 加载与清洗
df = pd.read_csv('sales_data.csv')
df = df.dropna().drop_duplicates()

# 3. 特征工程
df['profit_margin'] = df['profit'] / df['sales'] * 100
df['year_month'] = df['date'].dt.to_period('M')

# 4. EDA
print(df.describe())
sns.pairplot(df[['sales', 'profit', 'advertising']])

# 5. 关键洞察可视化
monthly = df.groupby('year_month')['sales'].sum().reset_index()
px.line(monthly, x='year_month', y='sales', title='月度销售趋势').show()

# 6. 导出报告
df.to_excel('report.xlsx', index=False)

7. 进阶与生产化建议

  • 性能优化:大数据用 PolarsDuckDB
  • 自动化报告pandas-profiling / ydata-profilingSweetvizAutoViz
  • 仪表盘
  • Streamlit(最快上手)
  • Dash / Gradio
  • Power BI + Python 脚本
  • 版本控制与复现:Jupyter + requirements.txtuv.lockDVC
  • 统计建模:Statsmodels(回归、时间序列)、Pingouin(统计检验)

8. 学习路径推荐(3 阶段)

阶段 1(1-2 周):NumPy + pandas + Matplotlib/Seaborn
阶段 2(2-4 周):EDA + Plotly + 真实项目(Kaggle)
阶段 3(持续):Polars + Streamlit 仪表盘 + 统计建模 + 大数据工具

优秀练习数据集

  • Titanic(入门)
  • House Prices(特征工程)
  • Superstore Sales(商业分析)
  • COVID-19 / Global Development(多维度)

资源推荐(2026)

  • 官方文档:pandas.pydata.org、plotly.com
  • 书籍:《Python for Data Analysis》(Wes McKinney)
  • 课程:Kaggle 免费课程、DeepLearning.AI 数据分析专项
  • 中文社区:Datawhale、掘金

需要我立即为你展开某个具体章节吗?例如:

  • pandas 100 道高频操作
  • Seaborn vs Plotly 完整对比
  • Streamlit 交互式数据仪表盘实战
  • Polars 极速替代 pandas
  • 商业数据分析报告模板(销售/用户/财务)

告诉我你的当前水平(入门/中级/项目实战)和具体需求,我可以立刻给你更针对性的深度内容!

文章已创建 5321

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部