以下介紹使用python的pandas套件讀寫excel,python與pandas版本如下:
|
進行之前請安裝好上述的版本。
大綱
這次要測試的資料如下圖:
import pandas as pd
if __name__ =='__main__':
filepath="test.xlsx"
df = readExcel(filepath)
print(df)
|
一開始先把pandas import 到專案中並取名為pd,接著建置一個涵式 readExcel,直接取用 pandas 的 read_excel進行excel的讀取,filepath是excel的路徑名稱與檔名, sheet_name 則代表要讀取哪張sheet。
執行結果如下:
如果我們只要讀取特定B欄,可以已下述方式讀取:
方法一,在 read_excel後面參數usecols加上指定欄位:
import pandas as pd
def readExcel(filepath):
df = pd.read_excel(filepath, sheet_name='工作表1',usecols='B')
return df
if __name__ =='__main__':
filepath="test.xlsx"
df = readExcel(filepath)
print(df)
|
這樣就只會讀取B欄位的資料如下:
結果圖:
import pandas as pd |
iloc這個用法是[row, column],裡面的1:3代表取用index 1但小於index 3的row值,取到的是index 1,2,換成excel中的位置是3,4,iloc會忽列excel的第一行,所以row實際上都對應到excel的+2位置,後面的column固定寫1,代表是取用excel中的B欄,結果如下:
可以再做一個實驗看看,我們改成如下:
print(df.iloc[0:3,1]) |
理論上是取excel的2,3,4,如下圖,證實是正確的
import pandas as pd |
現在我們來讀取excel中的row 3,如下圖黃底:
row的讀取中,pandas的iloc會把row 1忽略,所以iloc下,row index 0 代表的就是excel 的 row 2, iloc[1:0:3] 意思就是讀取row 3,0:3則是讀取欄位A~C
結果:
修改上述的程式碼,把iloc[1:1:3] 就是讀取excel中row3的欄B與C。
結果:
如果要指定,就是輸入座標,iloc[1,2]: 讀取excel row 3的欄C
結果:
我們將下述的資料寫到excel中:
import pandas as pd |
data 的key就是JSON的key欄位,也代表excel中的欄,資料會是放直的,結果如下圖:
參考連結:
留言列表