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']
})
相关推荐
是Yu欸36 分钟前
鸿蒙PC移植:2048 从网页小游戏到 AI 桌面应用
大数据·人工智能·算法·数据挖掘·openharmony·codex
2601_966949652 小时前
只拿到股票代码还不够:量化程序到底还需要哪些标的信息?——从数据建模开始理解股票元数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
m0_587383003 小时前
深圳24小时自助健身房系统软件开发实战:架构设计与部署指南
人工智能·数据挖掘·系统架构·需求分析
估值探索者3 小时前
【Python量化系统工程化 #08】关了 SSH 就停?systemd 让脚本开机自启 + 异常自动拉起
java·c++·人工智能·分类·数据挖掘
电商API_180079052473 小时前
拍照找同款是怎么实现的?淘宝以图搜图接口 item_search_img 对接实战
大数据·爬虫·数据挖掘·数据分析·代采api
雾屿_Mistisle5 小时前
模型窃取与隐私泄露(二)模型反演与模型提取
机器学习·数据分析
白远山7 小时前
24小时自助健身房系统开发实战:从需求分析到完整指南
java·开发语言·数据库·数据挖掘·需求分析
雾屿_Mistisle7 小时前
AI安全设计总结
人工智能·机器学习·数据分析
雾屿_Mistisle8 小时前
对抗样本攻击(四)对抗训练
机器学习·数据分析
精益数智工坊8 小时前
元数据管理怎么落地?元数据管理实施路径有哪些?
大数据·人工智能·数据挖掘·数据可视化