pandas读取Excel时converters与usecols参数详解及空值排查

林见深
林见深
发布时间:2026-10-12| 5人浏览过
原创

本文详解pandas读取Excel时的常见陷阱,重点解析converters参数用于强制类型转换(如学号转字符串)以解决空值问题,以及usecols参数的三种用法:列表指定列名、numpy切片区间及字母范围切片。强调sheet_name需显式指定,提供完整代码示例与注意事项。

在使用Python处理Excel数据时,若需将“学号”和“ID”等字段作为字符类型读取,以便后续进行字符串操作或避免数值转换错误,需特别注意读取配置。

df = pd.read_excel(path, converters={'学号': str, 'ID': str})

以下是基于实际案例的分析:

在尝试从Excel文件导入数据至Python环境时,发现部分关键字段的值为空。

import pandas as pd 
df=pd.read_excel("D:/Python/05DataMineML/2022STU(1).xlsx")
df

尽管Excel文件中明明存在数据,但读取结果却为空,这通常是因为sheetname(即工作表名称)参数未正确指定或存在拼写差异所致。

针对上述问题,可以尝试以下几种解决方案:

下图展示了Excel文件的表头结构,该表格包含115行数据记录。

方法一:使用usecols参数

#获取字段的第一种写法
import pandas as pd
df=pd.read_excel('../05DataMineML/2022STU(1).xlsx',usecols=['学号','姓名','20220101','20220125','20220202','20220208','20220213','20220220','20220226','20220311','20220320','20220327','20220403','randscore'],index_col='姓名',sheet_name='2022STUMOOC')
df.info()

关键参数说明: index_col:指定哪一列作为DataFrame的行索引。 usecols:在pandas的read_excel()函数中,通过此参数指定需要读取的具体列。 sheet_name:明确指定要读取的工作表名称。

重要提示:若使用usecols参数,必须显式指定sheet_name参数,否则可能导致读取失败或列名解析错误。

方法二:使用numpy辅助

#获取字段的第二种写法:使用numpy
import pandas as pd
import numpy as np
df=pd.read_excel('../05DataMineML/2022STU(1).xlsx',converters={'学号':str},usecols=np.arange(3,16),index_col='姓名',sheet_name='2022STU')
df.head()

此方法涉及converters参数的应用:

converters={'学号':str}:该配置将“学号”列强制转换为字符串类型,确保后续数据处理时类型一致。

这里同时使用了usecols=np.arange(3,16)来限定读取的列范围。

方法三:使用切片区间指定列

#获取字段的第三种写法:切片区间
import pandas as pd
import numpy as np
df=pd.read_excel('../05DataMineML/2022STUMOOC (1).xlsx',converters={'学号':str},usecols=("D:P"),index_col='姓名',sheet_name='2022STUMOOC')
df

此处使用了usecols=("D:P"),即通过Excel列的字母序号范围进行切片,具体对应如下图所示的列区间。

总结:

converters用法:用于强制类型转换。例如,将Excel中某一列的数据类型从整数(int)转换为字符串(str),防止前导零丢失或类型不匹配。

usecols用法:用于指定读取的列,支持列表、numpy数组或字母区间等多种格式。

usecols=[‘学号',‘姓名']
usecols=np.arange(3,16)
usecols=(“D:P”)

到此这篇关于pandas中converters和usecols用法详解的文章就介绍到这了,更多相关pandas converters和usecols内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。