pd.read_excel忽略最后空列:如何读取带格式的空列?
解决pandas读取Excel时忽略空格式列的问题
要读取所有带有格式的列(即便列中无数据),核心是先获取Excel工作表中实际被使用的列范围(包含带格式的空列),再让pandas读取这个范围内的所有列。这里推荐用openpyxl工具来获取列范围,因为它能识别带有格式的空单元格,准确返回工作表的最大列数。
具体步骤:
- 用
openpyxl加载Excel文件,获取目标工作表的最大列数(包含带格式的空列) - 将最大列数转换为Excel列字母范围,传递给
pd.read_excel的usecols参数
代码示例:
import openpyxl import pandas as pd # 加载Excel工作簿(只读模式提升效率) wb = openpyxl.load_workbook("your_file.xlsx", read_only=True) # 选择目标工作表,这里用默认激活的工作表,也可以指定名称如wb["Sheet1"] ws = wb.active # 获取工作表中带格式的最大列数(从1开始计数) max_column = ws.max_column # 将最大列数转换为Excel列字母(比如15对应字母O) last_col_letter = openpyxl.utils.get_column_letter(max_column) # 读取从A列到最后一列的所有数据 df = pd.read_excel("your_file.xlsx", usecols=f"A:{last_col_letter}")
说明:
openpyxl的max_column属性会识别所有带有格式(比如网格线、单元格样式)的列,哪怕列中没有任何数据,因此能准确覆盖你需要的所有列。- 如果你的Excel文件有多个工作表,记得将
wb.active替换为具体的工作表名称,比如wb["销售数据"]。 - 读取后的空列会在DataFrame中显示为
NaN,你可以根据需求后续处理这些空值。
内容的提问来源于stack exchange,提问作者Андрей Шевцов
相关产品推荐
相关产品推荐

