处理如下一个表格,前3行为版本信息,从第4行开始为物料详细信息。
import pandas as pd
xd = pd.ExcelFile(r'xxx.xls')
# 读取前3三行 ,用于单独提取版本信息
dataframe = pd.read_excel(xd, 'xx_BOM', nrows=3)
# 指定带读取的列
read_cols = ['序号', '生产类别', '规格型号', '品牌', '互替品牌', '数量', '料号', '类别']
f_strip = lambda v: v.strip() if isinstance(v, str) else v
is_read_cols = lambda c: c.strip() in read_cols
# 对特定的列添加自定义数据转换器,去除字符类型两端的空字符,i 为指定列的名称,如序号。
converters = {i: f_strip for i in read_cols}
# header=3 物料信息需要跳过前3行,4行为标题需要读取, usecols 指定需要读取的列
dataframe = pd.read_excel(xd, usecols=is_read_cols, converters=converters, sheet_name='xx_BOM', header=3, dtype=str)
# 判断指定列是否存在
not_exist_cols = [i for i in read_cols if i not in data_frame.columns]
for i in range(len(dataframe.values)):
# 打印每行数据信息
print(dataframe.values[0])