Python 學習筆記- pyodbc讀取 Microsoft Access檔案

Python安裝pyodbc模組

Python 無法直接讀取Microsoft Access的accdb或mdb資料庫檔案, 一般會透過2種模組來讀取:
  1. pypyodbc
  2. pyodbc
以下為Python安裝pyodbc模組讀取Microsoft Access的步驟:

安裝pyodbc

In [1]:
pip install pyodbc
Collecting pyodbc
  Downloading https://files.pythonhosted.org/packages/31/18/7724c956a4d6caf263732381bad762b0e03f2530c01c943052f1917495cb/pyodbc-4.0.28-cp36-cp36m-win_amd64.whl (78kB)
Installing collected packages: pyodbc
Successfully installed pyodbc-4.0.28
Note: you may need to restart the kernel to use updated packages.

成功安裝後,要重新啟動Kernel

In [2]:
import pyodbc
import pandas as pd
import numpy as np

## Microsoft Access 檔案名稱為 0000_1010801-1080331.accdb
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\DATA\Python data\練習\0000_1010801-1080331.accdb')
    
SQL = 'SELECT * FROM [1010801-1080331]' ## 1010801-1080331為資料表名稱
cur = conn.cursor()
cur.execute(SQL)
list = cur.fetchall()

desc = cur.description
cur.close()
conn.close()

df_column = pd.DataFrame(np.array(desc))
df = pd.DataFrame(np.array(list), columns=df_column[0])
df.head()
Out[2]:
編號 申報種類 交易標的種類 土地數量 建物數量 車位數量 幾房 幾廳 幾衛 有無隔間 代表建號屋齡 代表建號層次 車位總價格 車位總持分面積 地建號範圍 行政區 地段 土地移轉面積(坪) 建物移轉面積(坪) 房地單價(每坪萬元)
0 0 買賣 房地(土地+建物) 2 1.0 None 8.0 4.0 5.0 Y 39.0 一層;二層;三層;四層;五層;騎樓;地下層 None None 五福四路91~120號 鹽埕區 大智段 20.27 104.24 15.3
1 1 買賣 房地(土地+建物) 1 1.0 None 3.0 2.0 2.0 Y 32.0 一層 None None 大公路121巷1~30號 鹽埕區 興橋段 10.28 29.79 6.0
2 2 買賣 房地(土地+建物) 2 1.0 None 3.0 2.0 2.0 Y 29.0 四層 None None 七賢三路121~150號 鹽埕區 興仁段 2.71 33.3 6.9
3 3 買賣 房地(土地+建物) 2 1.0 None 3.0 2.0 2.0 N 28.0 五層 None None 公園二路1~30號 鹽埕區 大成段 8.38 25.42 9.8
4 4 買賣 房地(土地+建物) 1 1.0 None 2.0 2.0 1.0 Y 14.0 八層 None None 建國四路361~390號 鹽埕區 鹽北段 2.09 20.92 9.5
5 rows × 39 columns

將「編號」設定為index

In [3]:
df = df.set_index("編號", drop=True)
df.head()
Out[3]:
申報種類 交易標的種類 土地數量 建物數量 車位數量 幾房 幾廳 幾衛 有無隔間 建物型態 代表建號屋齡 代表建號層次 車位總價格 車位總持分面積 地建號範圍 行政區 地段 土地移轉面積(坪) 建物移轉面積(坪) 房地單價(每坪萬元)
編號
0 買賣 房地(土地+建物) 2 1.0 None 8.0 4.0 5.0 Y 店面(店鋪) 39.0 一層;二層;三層;四層;五層;騎樓;地下層 None None 五福四路91~120號 鹽埕區 大智段 20.27 104.24 15.3
1 買賣 房地(土地+建物) 1 1.0 None 3.0 2.0 2.0 Y 公寓(5F含以下無電梯) 32.0 一層 None None 大公路121巷1~30號 鹽埕區 興橋段 10.28 29.79 6.0
2 買賣 房地(土地+建物) 2 1.0 None 3.0 2.0 2.0 Y 住宅大樓(11F含以上有電梯) 29.0 四層 None None 七賢三路121~150號 鹽埕區 興仁段 2.71 33.3 6.9
3 買賣 房地(土地+建物) 2 1.0 None 3.0 2.0 2.0 N 公寓(5F含以下無電梯) 28.0 五層 None None 公園二路1~30號 鹽埕區 大成段 8.38 25.42 9.8
4 買賣 房地(土地+建物) 1 1.0 None 2.0 2.0 1.0 Y 華廈(10F含以下有電梯) 14.0 八層 None None 建國四路361~390號 鹽埕區 鹽北段 2.09 20.92 9.5
5 rows × 38 columns
In [ ]:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *