# 1. 使用python連線postgresql ## 下載教學檔案 ``` cd mimic/ git clone https://github.com/holiday01/mimic-iii-ntuh-tutorial.git ``` ## 套件安裝 ``` pip install psycopg2-binary pip install pandas ``` ## 載入套件 ``` import psycopg2 import pandas as pd ``` ## 設定連接資料庫參數 ``` conn = psycopg2.connect(database="database_name", user="user_name", password="user_password", host="IP", port="IP_port") ``` ## 參數介紹 * database 資料庫名稱 * user 帳號 * password 密碼 * host 伺服器IP * port 連接資料庫的埠 ## 連接上資料庫,抓取資料 ``` ## 允許python執行postgresql語法 with conn.cursor() as cur: ## 觀察查詢筆數 print(cur.rowcount) ## SQL語法 sql = "select * from mimiciii.icustays" ## 執行sql語法 cur.execute(sql) ## 取得欄位名稱 name = [desc[0] for desc in cur.description] ## fetchall是將所有收尋的資料都寫入 rows 中 # rows = pd.DataFrame(cur.fetchall()) rows = pd.DataFrame(cur.fetchall(),columns=name) ## 取出一筆資料 # rows = pd.DataFrame(cur.fetchone()) ## 自行設定要幾筆資料 # rows = pd.DataFrame(cur.fetchmany(10)) ## 觀察查詢筆數 print(cur.rowcount) print(rows.shape) rows.head() ``` ## 合併與整理兩個資料表,拿取資料,以敗血病為例 ``` conn = psycopg2.connect(database="database_name", user="user_name", password="user_password", host="IP", port="IP_port") with conn.cursor() as cur: ## 觀察查詢筆數 ## SQL語法 sql = """ select ma.* from mimiciii.admissions ma INNER JOIN public.angus pa ON ma.hadm_id = pa.hadm_id where pa.explicit_sepsis = 1 """ ## 執行sql語法 cur.execute(sql) ## 取得欄位名稱 name = [desc[0] for desc in cur.description] ## 取得資料 rows = pd.DataFrame(cur.fetchall(),columns=name) print(rows.shape) rows.head() ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up