2020年1月8日 星期三

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]:
編號申報種類交易標的種類土地數量建物數量車位數量幾房幾廳幾衛有無隔間...代表建號屋齡代表建號層次車位總價格車位總持分面積地建號範圍行政區地段土地移轉面積(坪)建物移轉面積(坪)房地單價(每坪萬元)
00買賣房地(土地+建物)21.0None8.04.05.0Y...39.0一層;二層;三層;四層;五層;騎樓;地下層NoneNone五福四路91~120號鹽埕區大智段20.27104.2415.3
11買賣房地(土地+建物)11.0None3.02.02.0Y...32.0一層NoneNone大公路121巷1~30號鹽埕區興橋段10.2829.796.0
22買賣房地(土地+建物)21.0None3.02.02.0Y...29.0四層NoneNone七賢三路121~150號鹽埕區興仁段2.7133.36.9
33買賣房地(土地+建物)21.0None3.02.02.0N...28.0五層NoneNone公園二路1~30號鹽埕區大成段8.3825.429.8
44買賣房地(土地+建物)11.0None2.02.01.0Y...14.0八層NoneNone建國四路361~390號鹽埕區鹽北段2.0920.929.5
5 rows × 39 columns

將「編號」設定為index

In [3]:
df = df.set_index("編號", drop=True)
df.head()
Out[3]:
申報種類交易標的種類土地數量建物數量車位數量幾房幾廳幾衛有無隔間建物型態...代表建號屋齡代表建號層次車位總價格車位總持分面積地建號範圍行政區地段土地移轉面積(坪)建物移轉面積(坪)房地單價(每坪萬元)
編號
0買賣房地(土地+建物)21.0None8.04.05.0Y店面(店鋪)...39.0一層;二層;三層;四層;五層;騎樓;地下層NoneNone五福四路91~120號鹽埕區大智段20.27104.2415.3
1買賣房地(土地+建物)11.0None3.02.02.0Y公寓(5F含以下無電梯)...32.0一層NoneNone大公路121巷1~30號鹽埕區興橋段10.2829.796.0
2買賣房地(土地+建物)21.0None3.02.02.0Y住宅大樓(11F含以上有電梯)...29.0四層NoneNone七賢三路121~150號鹽埕區興仁段2.7133.36.9
3買賣房地(土地+建物)21.0None3.02.02.0N公寓(5F含以下無電梯)...28.0五層NoneNone公園二路1~30號鹽埕區大成段8.3825.429.8
4買賣房地(土地+建物)11.0None2.02.01.0Y華廈(10F含以下有電梯)...14.0八層NoneNone建國四路361~390號鹽埕區鹽北段2.0920.929.5
5 rows × 38 columns
In [ ]:
 

沒有留言:

【公告】網站遷移,未來內容將發表於新網站!!

 受限於blogger本身架構與限制,本網站所有內容已遷移至新網站,網址如下: https://kuo.us.to/wordpress/