Pandas read_excel自动移除空白列,如何设置保留所有列?
解决方案
pandas的read_excel默认不会主动删除全空白列,你遇到的自动删列问题,是全空列被pandas误识别为行索引、或者列筛选逻辑自动跳过导致的,加上三个参数即可解决:
index_col=None:强制不将任何列识别为行索引,避免首列全空时被自动转为索引、从列结构中消失usecols:显式指定要读取的列范围,比如你需要保留A到Z列就写usecols="A:Z",也可以写usecols=lambda x: True强制保留所有识别到的列,不会自动跳过无表头的列header=[0,1]:适配你的双层表头需求,指定前两行作为表头,生成MultiIndex格式的列名,不会因为表头行对应位置为空就跳过该列
修改后的代码如下:
import pandas as pd df = pd.read_excel( "test.xlsx", sheet_name = "MYSHEET", index_col = None, usecols = "A:Z", # 可根据实际最大列调整范围,或者替换为lambda x: True header = [0,1] # 适配双层表头 )
读取后首列会保留为全NaN的列,完全不影响你后续给该列设置特定值的逻辑,各工作表的列索引也能保持一致。
内容的提问来源于stack exchange,提问作者jasonvanderpool
相关产品推荐
相关产品推荐

