Pandas 完整数据分析工作流实战(标准 5 步流程)

前言

在日常数据分析、报表开发、机器学习预处理场景中,Pandas 是 Python 最核心工具。很多初学者零散学习各种 API,缺少一套标准化分析流程。本文结合 Pandas 架构思维导图,带你落地一套通用数据分析流水线:导入库 → 加载数据 → 数据清洗 → 特征构造 → 数据分析,可直接套用在业务数据集上。

上图清晰展示 Pandas 整体体系: 数据源(CSV/JSON/SQL)载入 Pandas; 两大核心结构:Series(一维)、DataFrame(二维表格); 四大核心能力:数据清洗、统计分析、可视化、机器学习预处理。下面我们完整实操整套流程。

1.导入必要的库

python 复制代码
import pandas as pd
import numpy as np

2.导入数据

Pandas 支持多种数据源:csv、excel、json、数据库 SQL 等,日常最常用read_csv

python 复制代码
df = pd.read_csv('data/penguins.csv')
df.head(5)
# 查看基础信息
print("数据集前5行:")
print(df.head())
print("数据集基本信息:")
print(df.info())
print("数值字段描述性统计:")
print(df.describe())

3.数据清洗(数据分析重中之重)

原始数据经常存在缺失值、重复行、异常值,清洗保证分析结果可靠。

python 复制代码
print("默认统计每列缺失值:\n",df.isna().sum())
#删除存在缺失的行
df.dropna(inplace=True)

4.数据特征的构造(衍生新字段)

基于原始字段计算、生成新特征,丰富分析维度。

python 复制代码
df['sex'] = df['sex'].astype('category')
df['bill_ratio'] = (df['bill_length_mm'] / df['bill_depth_mm']).round(2)

5.数据分析(分组统计、多维指标挖掘)

使用groupby分组聚合进行多维度业务统计,也是工作最高频场景。

python 复制代码
#数据分箱-把体重分为三个等级
df['mass_level'] = pd.cut(df['body_mass_g'],bins=3,labels=['低','中','高'])
print(df['mass_level'].value_counts())

#按岛屿分组分析
df.groupby(['island']).agg({
    'body_mass_g':['mean','count']
})
#按性别分组分析
df.groupby(['sex']).agg({
    'body_mass_g':['mean','count']
})
#按岛屿、性别分组分析
df.groupby(['island','sex']).agg({
    'body_mass_g':['mean','count']
})

整套流程总结

  1. 导入库:搭建 Python 数据分析环境;
  2. 导入数据:读取文件 / 数据库,初步探查数据概况;
  3. 数据清洗:处理缺失、重复、异常脏数据;
  4. 特征构造:衍生业务所需新字段;
  5. 数据分析:分组、聚合、多维统计,挖掘业务结论。

完整可运行整合代码

python 复制代码
#企鹅数据分析
#1.导入必要的库
import pandas as pd
import numpy as np
#2.导入数据
df = pd.read_csv('data/penguins.csv')
df.head(5)
#3.数据清洗
#缺失值的检查
print("默认统计每列缺失值:\n",df.isna().sum())
df.dropna(inplace=True)
#4.数据特征的构造
df.info()
df.head(5)
df['sex'] = df['sex'].astype('category')
df['bill_ratio'] = (df['bill_length_mm'] / df['bill_depth_mm']).round(2)
#5.数据分析
#数据分箱-把体重分为三个等级
df['mass_level'] = pd.cut(df['body_mass_g'],bins=3,labels=['低','中','高'])
print(df['mass_level'].value_counts())

#按岛屿分组分析
df.groupby(['island']).agg({
    'body_mass_g':['mean','count']
})
#按性别分组分析
df.groupby(['sex']).agg({
    'body_mass_g':['mean','count']
})
#按岛屿、性别分组分析
df.groupby(['island','sex']).agg({
    'body_mass_g':['mean','count']
})
相关推荐
专注API从业者5 小时前
告别人工盯品!Open Claw 搭建京东商品全自动监控与数据分析系统(附完整可运行代码)
大数据·数据库·数据分析
生态博士的R笔记7 小时前
R语言方差分析:单因素与双因素ANOVA完整流程
数据分析
菜冻鱼7 小时前
Python-pandas-索引与筛选
开发语言·笔记·python·numpy·pandas·学习方法
十三画者8 小时前
【文献分享】CANVAS:基于细胞构架与邻域信息的组织病理学虚拟空间肿瘤分析
人工智能·机器学习·数据挖掘·数据分析·数据可视化
数模竞赛Paid answer12 小时前
2019年深圳杯数学建模A题深圳居民健康水平评估与测控模型研究解题全过程文档及程序
数学建模·数据分析·深圳杯数学建模挑战赛
小趴蔡ha1 天前
04 Pandas 数据清洗实战:从表格读取到机器学习特征准备
人工智能·机器学习·pandas
数模竞赛Paid answer1 天前
2025年五一杯数学建模A题支路车流量推测问题求解全过程论文及程序
数学建模·数据分析·五一杯
cui_ruicheng1 天前
Python数据分析(十四):Pandas 数据可视化
python·信息可视化·数据分析·pandas
leisoo80972 天前
筹码分布数据分析实战:用Python构建主力建仓成本分析系统
python·数据挖掘·数据分析