人工智能之数据分析 Pandas:第十章 知识总结

人工智能之数据分析 Pandas

第十章 知识总结


文章目录

  • [人工智能之数据分析 Pandas](#人工智能之数据分析 Pandas)
  • 前言
  • [🧱 一、核心数据结构](#🧱 一、核心数据结构)
  • [📥 二、数据读写(I/O)](#📥 二、数据读写(I/O))
  • [🔍 三、数据查看与基本信息](#🔍 三、数据查看与基本信息)
  • [🎯 四、数据选择与索引](#🎯 四、数据选择与索引)
  • [🧹 五、数据清洗(Data Cleaning)](#🧹 五、数据清洗(Data Cleaning))
  • [🔄 六、数据变换与应用](#🔄 六、数据变换与应用)
  • [📊 七、分组聚合(GroupBy)](#📊 七、分组聚合(GroupBy))
  • [🔗 八、数据合并与重塑](#🔗 八、数据合并与重塑)
  • [📈 九、时间序列处理](#📈 九、时间序列处理)
  • [📉 十、相关性与统计分析](#📉 十、相关性与统计分析)
  • [🖼️ 十一、数据可视化(基础)](#🖼️ 十一、数据可视化(基础))
  • [⚡ 十二、性能优化技巧](#⚡ 十二、性能优化技巧)
  • [🧩 十三、高频函数速查表](#🧩 十三、高频函数速查表)
  • [✅ 十四、最佳实践总结](#✅ 十四、最佳实践总结)
  • [📚 学习路径建议](#📚 学习路径建议)
  • 后续
  • 资料关注

前言

本文是对Pandas 核心知识点的系统性总结 ,涵盖从基础到进阶的关键概念、常用操作和最佳实践,适合用于快速复习、面试准备或日常开发参考


🧱 一、核心数据结构

结构 说明 特点
Series 一维带标签数组 类似带索引的 NumPy 数组,单列数据
DataFrame 二维表格型结构 行(index)+ 列(columns),最常用

✅ 所有操作围绕这两个对象展开。


📥 二、数据读写(I/O)

格式 读取 写入
CSV pd.read_csv() df.to_csv()
Excel pd.read_excel() df.to_excel()
JSON pd.read_json() df.to_json()
SQL pd.read_sql() df.to_sql()
Parquet pd.read_parquet() df.to_parquet()

💡 关键参数encoding, dtype, parse_dates, usecols, index_col


🔍 三、数据查看与基本信息

python 复制代码
df.head() / .tail()       # 查看前/后几行
df.shape                  # (行数, 列数)
df.info()                 # 列名、非空数、类型、内存
df.describe()             # 数值列统计摘要
df.dtypes                 # 每列数据类型
df.columns / df.index     # 列名与行索引

🎯 四、数据选择与索引

方法 说明 示例
df['col'] 选单列(返回 Series) df['姓名']
df[['col1', 'col2']] 选多列(DataFrame) 注意双括号
.loc[row, col] 标签索引(含末端) df.loc[0:2, 'A':'C']
.iloc[row, col] 位置索引(不含末端) df.iloc[0:3, 0:2]
布尔索引 条件筛选 df[df['age'] > 30]
.query() 字符串条件查询 df.query('age > 30 & salary < 10000')

⚠️ 避坑 :避免链式赋值 → 用 .loc[condition, 'col'] = value


🧹 五、数据清洗(Data Cleaning)

问题 解决方法
缺失值 isnull(), dropna(), fillna(), interpolate()
重复值 duplicated(), drop_duplicates()
异常值 IQR、3σ、业务规则过滤
类型错误 astype(), pd.to_numeric(), pd.to_datetime()
格式混乱 .str.strip(), .str.lower(), 正则替换
列名不规范 rename(), columns = ...

清洗流程:概览 → 缺失 → 重复 → 异常 → 类型 → 标准化


🔄 六、数据变换与应用

操作 方法
列运算 df['new'] = df['A'] * 2
条件赋值 np.where(cond, x, y)np.select()
分箱离散化 pd.cut(), pd.qcut()
映射替换 map(), replace()
自定义函数 apply()(逐行/列), applymap()(逐元素,已弃用)
链式新增列 assign()(推荐)
分组标准化 groupby().transform()

📊 七、分组聚合(GroupBy)

python 复制代码
# 基础聚合
df.groupby('部门')['工资'].mean()

# 多列多函数
df.groupby('部门').agg({
    '工资': ['mean', 'max'],
    '姓名': 'count'
})

# 命名聚合(pandas ≥ 0.25)
df.groupby('部门', as_index=False).agg(
    平均工资=('工资', 'mean'),
    人数=('姓名', 'size')
)

🔑 GroupBy 三大操作:Split → Apply → Combine


🔗 八、数据合并与重塑

操作 函数 说明
上下拼接 pd.concat([df1, df2]) axis=0
左右拼接 pd.concat([df1, df2], axis=1)
SQL 式连接 pd.merge(df1, df2, on='key', how='left') 支持 inner/left/right/outer
宽变长 df.melt() 逆透视
长变宽 df.pivot() / pd.pivot_table() 透视表

📈 九、时间序列处理

python 复制代码
# 转换为 datetime
df['date'] = pd.to_datetime(df['date'])

# 提取时间属性
df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
df['weekday'] = df['date'].dt.dayofweek

# 重采样(Resample)
df.set_index('date').resample('M').sum()  # 月度汇总

✅ 时间序列是 Pandas 的强项!


📉 十、相关性与统计分析

python 复制代码
# 相关性矩阵
df.corr(method='pearson')

# 描述性统计
df.mean(), df.std(), df.quantile(0.75)

# 交叉表
pd.crosstab(df['性别'], df['是否购买'])

🖼️ 十一、数据可视化(基础)

python 复制代码
df.plot(kind='line')      # 折线图
df.plot(kind='bar')       # 柱状图
df.plot(kind='hist')      # 直方图
df.plot(kind='box')       # 箱线图
df.plot.scatter(x='A', y='B')  # 散点图

💡 快速 EDA 用 Pandas,精美图表用 Seaborn/Plotly


⚡ 十二、性能优化技巧

技巧 说明
使用合适 dtype category, Int8, float32 节省内存
向量化操作 避免 for 循环,用 +, np.where
避免链式赋值 .loc 安全赋值
分块读取大文件 read_csv(..., chunksize=10000)
使用 eval/query 对复杂表达式加速
删除无用列 df.drop() 早释放内存
考虑替代库 Dask / Modin(并行),Polars(更快)

🧩 十三、高频函数速查表

类别 核心函数
创建 DataFrame(), read_csv()
查看 head(), info(), describe()
筛选 .loc, .iloc, query(), isin()
排序 sort_values(), sort_index()
缺失值 isnull(), fillna(), dropna()
去重 drop_duplicates(), value_counts()
聚合 groupby().agg(), pivot_table()
合并 concat(), merge()
字符串 .str.contains(), .str.split()
时间 to_datetime(), .dt.year

✅ 十四、最佳实践总结

  1. 优先向量化,避免循环
  2. 明确数据类型,节省内存
  3. 清洗先行,质量第一
  4. .loc 赋值,避免警告
  5. 大文件分块处理
  6. 链式编程提升可读性df.pipe().assign().query()
  7. 可视化辅助理解数据

📚 学习路径建议

python 复制代码
基础 → 数据读写 → 索引选择 → 清洗 → 聚合 → 合并 → 时间序列 → 可视化 → 性能优化

💡 记住
Pandas 不是"会用就行",而是"用对才高效"

掌握上述知识点,你已具备中级以上 Pandas 能力,可应对绝大多数数据分析任务!

后续

python过渡项目部分代码已经上传至gitee,后续会逐步更新。

资料关注

公众号:咚咚王

gitee:https://gitee.com/wy18585051844/ai_learning

《Python编程:从入门到实践》

《利用Python进行数据分析》

《算法导论中文第三版》

《概率论与数理统计(第四版) (盛骤) 》

《程序员的数学》

《线性代数应该这样学第3版》

《微积分和数学分析引论》

《(西瓜书)周志华-机器学习》

《TensorFlow机器学习实战指南》

《Sklearn与TensorFlow机器学习实用指南》

《模式识别(第四版)》

《深度学习 deep learning》伊恩·古德费洛著 花书

《Python深度学习第二版(中文版)【纯文本】 (登封大数据 (Francois Choliet)) (Z-Library)》

《深入浅出神经网络与深度学习+(迈克尔·尼尔森(Michael+Nielsen)》

《自然语言处理综论 第2版》

《Natural-Language-Processing-with-PyTorch》

《计算机视觉-算法与应用(中文版)》

《Learning OpenCV 4》

《AIGC:智能创作时代》杜雨+&+张孜铭

《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》

《从零构建大语言模型(中文版)》

《实战AI大模型》

《AI 3.0》

相关推荐
小鸡吃米…6 小时前
机器学习 - K - 中心聚类
人工智能·机器学习·聚类
好奇龙猫6 小时前
【AI学习-comfyUI学习-第三十节-第三十一节-FLUX-SD放大工作流+FLUX图生图工作流-各个部分学习】
人工智能·学习
沈浩(种子思维作者)6 小时前
真的能精准医疗吗?癌症能提前发现吗?
人工智能·python·网络安全·健康医疗·量子计算
minhuan6 小时前
大模型应用:大模型越大越好?模型参数量与效果的边际效益分析.51
人工智能·大模型参数评估·边际效益分析·大模型参数选择
Cherry的跨界思维7 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
MM_MS7 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
ASF1231415sd7 小时前
【基于YOLOv10n-CSP-PTB的大豆花朵检测与识别系统详解】
人工智能·yolo·目标跟踪
水如烟8 小时前
孤能子视角:“意识“的阶段性回顾,“感质“假说
人工智能
Carl_奕然8 小时前
【数据挖掘】数据挖掘必会技能之:A/B测试
人工智能·python·数据挖掘·数据分析
旅途中的宽~8 小时前
《European Radiology》:2024血管瘤分割—基于MRI T1序列的分割算法
人工智能·计算机视觉·mri·sci一区top·血管瘤·t1