第 1 章 备料间:数据类型与结构基础


第 1 章 · 备料间:数据类型与结构基础

本章要回答的问题:动手清洗之前,凭什么说"先把食材认全"最重要?拿到一份新数据,怎样在几分钟内判断每一列是什么类型、该用什么盛器来装?列表、字典、集合、数组这些容器各管什么,选错了会怎样?这三个问题的答案,构成了后面七章所有手法的地基。

为什么会有这一章

料理行有句老话:食材没认全就开火,翻车只是时间问题。数据处理同样如此。大量真实事故的根因不在算法,而在最前面那一步——把存成文本的数字当数字算,把含 NaN 的整型列强转 int 崩了整段脚本,把该用字典的查找写成了遍历列表。这些都是"食材验收"没做的账。

本章放在全书最前面,还有一个原因:后续每一章的食谱卡都默认你读得懂报错里的类型名。第 2 章的 to_numeric 为什么要配 errors 参数,第 4 章的 groupby 结果为什么有时是 Series 有时是 DataFrame,这些"为什么"都长在同一块地基上。备料间看着不起眼,但后厨每个人每天都要进来。

读完能解决什么

对照开篇的几个问题,读完本章你应当能做到:

  • 验收能力:对任意一份新数据,逐列说出它的类型(整数、浮点、字符串、布尔、时间、类别),并指出类型与"肉眼看到的样子"不一致的地方;
  • 辨析能力:说清 NaN 和 None、int64 和 float64、列表和元组的区别,以及这些区别何时会咬人;
  • 选器能力:按"要装什么、怎么取用"为一段中间数据挑合适的容器——查找用字典、去重用集合、有序序列用列表、批量数值用数组;
  • 算术能力:解释数组运算与标量运算的差异,预判哪些运算会逐元素发生、哪些会改变形状。

可考核知识点清单(自测时逐条打勾):type 与 dtype 各自回答什么问题;NaN 属于浮点世界的原因;可变与不可变容器在函数传参时的行为差异;字典按键取值与列表按下标取值的复杂度差别;数组广播的基本直觉;pandas 里 object、int64、float64、datetime64、category 五类 dtype 的常见来历。

各节怎么分工

节 回答哪个问题 关键产出
1.1 数据类型与结构 食材是什么、新不新鲜 一套逐列验收类型的检查动作
1.2 常用数据结构操作 用什么盛器装、怎么取用 容器选型对照与数组算术直觉

常见疑问

**问:直接学 pandas 不行吗,为什么先认 Python 类型?**因为 pandas 的很多"怪行为"根源在类型系统——整型列混入 NaN 变浮点、文本列点不了数值方法、category 省内存的原理,这些"为什么"都落在 1.1 的六类食材上。跳过这一步,后面的每个报错都像玄学。

**问:列表、字典这些基础真的会用,能跳吗?**可以快读,但别跳过 1.2 的"逐元素算术"与"别名陷阱"。数组逐元素运算直接决定 7.2 广播规则能不能看懂;引用别名则是清洗脚本"改一个动一双"事故的头号来源。

**问:本章需要装什么环境?**Python 与 pandas、NumPy 即可,全部示例在标准 Notebook 里可直接运行;不依赖任何特定版本的新特性,个别涉及弃用参数的地方(如 fillna 的 method)正文里都给了新旧两种写法。

先决条件

  • 会运行 Python 脚本或 Notebook,理解变量赋值与函数调用;
  • 见过 pandas 的 DataFrame 长什么样即可,不需要熟练;
  • 不需要统计背景——本册从头到尾不讲统计理论,只讲函数怎么用。

往下走到哪

备料合格后,下一章进择菜间:缺失值、异常值、重复值、类型矫正与标准化,是清洗工序的主菜。本章 1.1 讲的类型知识会直接决定 2.4(类型转换)里每个参数怎么选;1.2 的容器直觉则会在 6.1(函数式三件套)里反复兑现。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U