请教下利用USECOLS 批量提取EXCEL中的数据出现的问题

 

各位大佬们

for file in files:
    datai = pd.read_excel(file,usecols= [A,B,C],dtype=str)
    datai_len = len(datai)
    data = data.append(datai)

 

上面是一个利用for循环写的一个 批量提取EXCEL内容的东西  但是在实际执行中存在一些小问题, 如果文件1-100 表中均存在A,B,C三列则可以正常使用

如果文件1-100 的文件中 有几个表中不存在A或者 B,那么则会报错 notfound A or B 

因此考虑是否有方式可以 当该列在表中不存在时候 可以用空格填充

可以使用usecols参数中的error_bad_lines和skip_blank_lines参数来解决这个问题。设置error_bad_lines=False,可以跳过无法读取的行,而设置skip_blank_lines=True,则可以跳过空行。这样就可以解决当某一列不存在时,读取数据时的问题。

修改后的代码如下:

for file in files:
    datai = pd.read_excel(file, usecols=[A,B,C], dtype=str, error_bad_lines=False, skip_blank_lines=True)
    datai_len = len(datai)
    data = data.append(datai)

其中,A、B、C分别代表需要读取的列的索引或者列名。