【012】数据类型入门: Excel 数据到 Python 值的转换

背景

在 Excel 中,数字就是数字,文本就是文本,二者泾渭分明,但单元格本身从不强调"我装的是什么类型"。一个单元格里写 123,Excel 知道它是数值;以单引号开头输入 '123,Excel 知道它是文本。视觉上看起来一样,行为却截然不同。

进入 Python 之后,这个差异被无限放大。Python 是一个强类型语言------每个值都有明确的类型归属,数字、文字、逻辑、空值等,都分得清清楚楚。一旦开始用 Python 处理 Excel 数据,最先遇到的"墙",往往就是理解数据类型转换。

核心概念:Python 的五种基础类型

Python 处理数据时,最常用的"原材料"有五种:

类型 名称 典型例子 在 Excel 中的对应
int 整数 42、-7、0 单元格里不带小数的数值
float 浮点数 3.14、-0.5 单元格里的带小数数值
str 字符串 苹果、'2023 文本格式或被引号包裹的内容
bool 布尔值 True、False 公式中的 TRUE/FALSE
NoneType 空值 None 空单元格

理解这张表,相当于拿到了 Python 世界的"元素周期表"。

数据流:Excel 单元格 → Python 值

xl() 把 Excel 数据读入 Python 时,会按一定规则给每个值打上"类型标签":

  1. 单元格是数字 → 整数就是 int,带小数的就是 float
  2. 单元格是文本 → 无论内容是 abc 还是 '123,统统变成 str
  3. 单元格是空白 → 变成 None(不是空字符串,也不是 0)
  4. 单元格是 TRUE/FALSE → 变成 True/False,类型为bool

核心函数:type()------类型的"照妖镜"

刚接触 Python 时,最值得养成的一个习惯:不确定类型,先用 type() 看一眼。

type() 是 Python 内置的类型检测函数,把任意值传给它,它就告诉你这个值的"类别身份证":

复制代码
=PY(type(xl("A1")).__name__)

注意:type()返回的是一个 type 对象(例如 <class 'str'>),单元格默认显示完整的 type 文本。如果希望只看到类型名称(如 str、int),可以用 type(xl("A1")).__name__。

注意事项

1. Excel 的数字格式 ≠ Python 的类型

在 Excel 里把单元格格式设置为"货币"、"百分比"、"千分位",只是改变了 Excel 中在单元格内的显示形式,Python 看到的依然是底层数值。

2. 看似数字的文本是常见陷阱

如果某个单元格里存的是以单引号开头的 '150(显示为 150,被 Excel 识别为文本格式),xl() 会返回字符串,而不是整数 150。此时进行数学运算,例如加法 xl("A3") + 1 会报错。

3. 空单元格不是 0,也不是空字符串

很多人以为空单元格到了 Python 会变成 0 或 "",实际是 None。这是 Python 独有的"空"------表示"这里没有值"。

总结

以上是 Python 数据类型的基础面貌:五种类型构成数据世界的全部,xl() 把 Excel 数据按规则翻译成 Python 值,type() 是日常调试的好帮手。把这些概念记住,后续无论做加减乘除、数据筛选还是画图,都会顺畅很多。

相关推荐
淡漠的蓝精灵1 小时前
web.py:一个简单到极致的 Python Web 框架
开发语言·前端·python·其他
起个名字费劲死了2 小时前
Halcon学习一:骰子识别
前端·python·学习
eric-sjq3 小时前
小思框架 · 30M 级长上下文新架构对比技术报告
人工智能·python·深度学习·语言模型
reasonsummer4 小时前
【办公类-04-05】20261030整理手机照片(华为手机助手导出照片到日期文件夹+批量添加四级文件夹+手动转移照片更名+更改三级文件夹合并汉字名称)
python·智能手机
BD_Marathon5 小时前
【Python】初识迭代器
python
gz927cool5 小时前
Python 全栈应用最佳实践完整指南
开发语言·python·ai
智购科技智能售货柜5 小时前
顾客已经关门,视觉售货柜还在处理旧画面:延迟积压怎么查?~YH
python·单片机·嵌入式硬件·物联网·eclipse
梯度下降者6 小时前
Python从0到100(三):Python中的变量介绍
python·作用域·变量·数据类型·计算机常识
AIFQuant6 小时前
Python期货行情API接入:股指、黄金、原油多品种数据管道实战
开发语言·python·金融·区块链·量化开发