pandas讀取excel資料問題記錄
阿新 • • 發佈:2021-01-15
技術標籤:工作
處理如下一個表格,前3行為版本資訊,從第4行開始為物料詳細資訊。
import pandas as pd
xd = pd.ExcelFile(r'xxx.xls')
# 讀取前3三行 ,用於單獨提取版本資訊 指定讀取多少行nrows
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])