Python 語言 講義  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A B C


讀取excel檔案 - 使用pandas


安裝模組
在 “開始 / 附屬應用程式 / 打開命令提示字元”依序複製貼上以下4行(1行1行的來複製貼上)
cd AppData\Local\Programs\Python\Python36-32\Scripts
pip3 install pandas
pip3 install openpyxl
pip3 install xlrd

範例: test.xls 內容: 2個sheet, 3個cols 與 4個cols
Sheet data1
姓名	學號	組別
方仁	U08217001	3
王宇	U08217002	2
林勇	U08217003	2
甘于	U08217004	4
余晨	U08217005	6
Sheet data2
姓名	學號	組別	排名
連庭	U08217026	3	3
郭偉	U08217027	5	12
陳鈞	U08217028	1	15
陳仕	U08217029	2	31
陳暐	U08217030	6	5
邱詠	U08217031	2	35

程式1: 讀取檔案中的sheet
import pandas as pd
df = pd.read_excel("test.xls") # 只讀取第1個sheet
df = pd.read_excel("test.xls", sheet_name=None) # 讀取全部sheet
df = pd.read_excel("test.xls", sheet_name="data2") # 讀取特定sheet
df = pd.read_excel("test.xls",sheet_name=["data2","data1"]) # 讀取特定2個sheet
print(df)

程式2: 讀取檔案中的sheet - 指定欄位
import pandas as pd
df = pd.read_excel("test.xls",sheet_name="data1", usecols=["姓名", "學號"])
df = pd.read_excel("test.xls",sheet_name="data2", usecols="A, C:D")
print(df)

程式3: 讀取檔案中的sheet - 指定列數
import pandas as pd
df = pd.read_excel("test.xls",sheet_name="data2",  nrows=10)
df = pd.read_excel("test.xls",sheet_name="data1", usecols=["姓名", "學號"], nrows=8)
print(df)
另一種常用寫法:
import pandas as pd
df = pd.read_excel("test.xls",sheet_name="data2")
selectdf = df[3:8]
print(selectdf)

程式4: 讀取檔案中的sheet - 特定儲存格
import pandas as pd
df = pd.read_excel("test.xls",sheet_name="data2")
print(df)
cell = df.at[3,"姓名"]
print(cell)
另一種常用寫法:
import pandas as pd
df = pd.read_excel("test.xls",sheet_name="data2")
print(df)
cell = df.iat[3,1] # row 3, col 1
print(cell)

程式5: 合併多個工作表(sheet)的
import pandas as pd
df = pd.DataFrame() #建立一個空的Pandas DataFrame
data = pd.read_excel("test.xls", sheet_name=None) #把該檔內全部的sheet合併
sheet = pd.ExcelFile("test.xls") #取得sheet名稱。
for s_name in sheet.sheet_names:
    df = pd.concat([df, data.get(s_name)], ignore_index=False)
#get 讀取個別的sheet, concat進行合併
print(df)


參考來源:
Python 操作 Excel 哪家強
openpyxl讀取excel資料



Python 語言 講義  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A B C