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']
})
相关推荐
cc57250265318 小时前
2027 届秋招面试:数据科学专业从技术转业务,职业规划回答思路与岗位拆解
数据分析
benchmark_cc1 天前
本地已有一年历史 K 线,第二天更新别只拉“昨天一天”
python·数据分析·pandas·量化交易·股票数据·quantdash
智圣新创011 天前
锚定省级示范高职育人评价核验要求 第二课堂数字化落地全场景高频答疑
信息可视化·数据挖掘·数据分析
派小心.1 天前
热力图工具的多页面管理功能怎么比?
前端·数据分析
估值探索者2 天前
【Python量化系统工程实战 #08】从脚本到生产:量化系统上线 checklist 的最小闭环
java·开发语言·jvm·python·数据挖掘·数据·股票数据api接口
卷毛迷你猪2 天前
快速实验篇(B17)B组实验总结报告:电商用户行为数据分析的完整实践
数据挖掘·数据分析
用户7783366132112 天前
前端本地存搜索数据:IndexedDB 入门实战(缓存、历史、离线)
数据挖掘·indexeddb
wang_yb2 天前
什么是范数?用 NumPy 动手算一遍就明白了
数据分析·databook
YangYang9YangYan2 天前
2027 届校招|大数据管理与应用专业投递供应链管培,数据分析能力考察逻辑拆解
数据挖掘·数据分析
卷毛迷你猪3 天前
快速实验篇(B16)用户级预测可行性审计(否定性意见)
大数据·hadoop·数据挖掘·聚类