Python安裝pypyodbc模組
Python 無法直接讀取Microsoft Access的accdb或mdb資料庫檔案, 一般會透過2種模組來讀取:
- pypyodbc
- pyodbc
以下為Python安裝pypyodbc模組讀取Microsoft Access的步驟:
Python 無法直接讀取Microsoft Access的accdb或mdb資料庫檔案, 一般會透過2種模組來讀取:
- pypyodbc
- pyodbc
以下為Python安裝pypyodbc模組讀取Microsoft Access的步驟:
安裝pypyodbc
In [ ]:
pip install pypyodbc
Collecting pypyodbc
Requirement already satisfied: setuptools in c:userssuperuserminiconda3envsfinlablibsite-packages (from pypyodbc) (41.0.1)
Building wheels for collected packages: pypyodbc
Building wheel for pypyodbc (setup.py): started
Building wheel for pypyodbc (setup.py): finished with status ‘done’
Created wheel for pypyodbc: filename=pypyodbc-1.3.4-cp36-none-any.whl size=22847 sha256=55f456049e019685e95f632d066c46f2a8082b161ed075b2b8237cb47ee10637
Stored in directory: C:UserssuperuserAppDataLocalpipCachewheelse49218b21aa15a7e8915859a6fc10206cdd7f5d9ac098a523b9738c6
Successfully built pypyodbc
Installing collected packages: pypyodbc
Successfully installed pypyodbc-1.3.4
Note: you may need to restart the kernel to use updated packages.
In [ ]:
pip install pypyodbc
Collecting pypyodbc
Requirement already satisfied: setuptools in c:userssuperuserminiconda3envsfinlablibsite-packages (from pypyodbc) (41.0.1)
Building wheels for collected packages: pypyodbc
Building wheel for pypyodbc (setup.py): started
Building wheel for pypyodbc (setup.py): finished with status ‘done’
Created wheel for pypyodbc: filename=pypyodbc-1.3.4-cp36-none-any.whl size=22847 sha256=55f456049e019685e95f632d066c46f2a8082b161ed075b2b8237cb47ee10637
Stored in directory: C:UserssuperuserAppDataLocalpipCachewheelse49218b21aa15a7e8915859a6fc10206cdd7f5d9ac098a523b9738c6
Successfully built pypyodbc
Installing collected packages: pypyodbc
Successfully installed pypyodbc-1.3.4
Note: you may need to restart the kernel to use updated packages.
成功安裝後,要重新啟動Kernel
In [1]:
import pypyodbc
import pandas as pd
db_file = 'D:\DATA\Python data\練習\0000_1010801-1080331.accdb' ## Microsoft Access 檔案名稱
user = 'Administrator'
password = ''
connection_string = 'DRIVER={Microsoft Access Driver (*.accdb)};DBQ=%s;UID=%s;PWD=%s' % (db_file, user, password)
conn = pypyodbc.win_connect_mdb(connection_string)
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(desc)
df_column[0]
df = pd.DataFrame(list, columns=df_column[0])
df.head()
Out[1]:
編號
申報種類
交易標的種類
土地數量
建物數量
車位數量
幾房
幾廳
幾衛
有無隔間
…
代表建號屋齡
代表建號層次
車位總價格
車位總持分面積
地建號範圍
行政區
地段
土地移轉面積(坪)
建物移轉面積(坪)
房地單價(每坪萬元)
0
0
買賣
房地(土地+建物)
2.0
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
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.0
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.0
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.0
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
In [1]:
import pypyodbc import pandas as pd db_file = 'D:\DATA\Python data\練習\0000_1010801-1080331.accdb' ## Microsoft Access 檔案名稱 user = 'Administrator' password = '' connection_string = 'DRIVER={Microsoft Access Driver (*.accdb)};DBQ=%s;UID=%s;PWD=%s' % (db_file, user, password) conn = pypyodbc.win_connect_mdb(connection_string) 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(desc) df_column[0] df = pd.DataFrame(list, columns=df_column[0]) df.head()
Out[1]:
編號 | 申報種類 | 交易標的種類 | 土地數量 | 建物數量 | 車位數量 | 幾房 | 幾廳 | 幾衛 | 有無隔間 | … | 代表建號屋齡 | 代表建號層次 | 車位總價格 | 車位總持分面積 | 地建號範圍 | 行政區 | 地段 | 土地移轉面積(坪) | 建物移轉面積(坪) | 房地單價(每坪萬元) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 買賣 | 房地(土地+建物) | 2.0 | 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 | 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.0 | 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.0 | 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.0 | 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 [2]:
df = df.set_index("編號", drop=True)
df.head()
Out[2]:
申報種類
交易標的種類
土地數量
建物數量
車位數量
幾房
幾廳
幾衛
有無隔間
建物型態
…
代表建號屋齡
代表建號層次
車位總價格
車位總持分面積
地建號範圍
行政區
地段
土地移轉面積(坪)
建物移轉面積(坪)
房地單價(每坪萬元)
編號
0
買賣
房地(土地+建物)
2.0
1.0
None
8.0
4.0
5.0
Y
店面(店鋪)
…
39.0
一層;二層;三層;四層;五層;騎樓;地下層
None
None
五福四路91~120號
鹽埕區
大智段
20.27
104.24
15.3
1
買賣
房地(土地+建物)
1.0
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.0
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.0
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.0
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 [2]:
df = df.set_index("編號", drop=True) df.head()
Out[2]:
申報種類 | 交易標的種類 | 土地數量 | 建物數量 | 車位數量 | 幾房 | 幾廳 | 幾衛 | 有無隔間 | 建物型態 | … | 代表建號屋齡 | 代表建號層次 | 車位總價格 | 車位總持分面積 | 地建號範圍 | 行政區 | 地段 | 土地移轉面積(坪) | 建物移轉面積(坪) | 房地單價(每坪萬元) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
編號 | |||||||||||||||||||||
0 | 買賣 | 房地(土地+建物) | 2.0 | 1.0 | None | 8.0 | 4.0 | 5.0 | Y | 店面(店鋪) | … | 39.0 | 一層;二層;三層;四層;五層;騎樓;地下層 | None | None | 五福四路91~120號 | 鹽埕區 | 大智段 | 20.27 | 104.24 | 15.3 |
1 | 買賣 | 房地(土地+建物) | 1.0 | 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.0 | 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.0 | 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.0 | 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