安裝兩個包:
pip3 install PyMySQL
pip3 install sqlalchemy
連線 Mysql 資料庫:
import pandas as pd
import sqlalchemy
engine = sqlalchemy.create_engine('mysql+pymysql://root:root@localhost:3306/express')
這是連線 mysql 資料庫的引數規則, 如果是其他資料庫, 可參照 官網 下圖這個部分
讀
下面就可以從資料庫讀取資料了:
df = pd.read_sql_table('users', engine)
df
只想讀取指定欄位也可以:
df = pd.read_sql_table('users', engine, columns=['email', 'mobile'])
df
執行 sql 語句:
query = '''
SELECT nick_name, email from users where id < 5
'''
df = pd.read_sql_query(query, engine)
df
寫
假如你有一份 csv 格式的檔案, 想要匯入資料庫
先把它轉成 dataframe 吧:
df = pd.read_csv('/Users/rachel/Sites/pandas/py/pandas/21_sql/customers.csv')
df
輸出:
把表頭重新命名, 要保證跟要插入的資料表的欄位名一致, 否則是無法插入的:
df.rename(columns = {
'nick_name': 'name',
'Customer Phone': 'mobile',
}, inplace = True)
df
下面就是執行匯入資料庫的命令了. 第一個引數是指定要匯入到哪個表中, 第二個引數是連線用的, 第三個引數是要去掉索引, 第四個引數是指如果資料庫裡已經有某個值了, 就 keep both, 這個引數值有幾種不同的, 比如"覆蓋"等.
df.to_sql(
name = 'admin_users',
con = engine,
index = False,
if_exists = 'append'
)
介紹最後一個函式 pd.read_sql(), 它是 read_sql_table() 和 read_sql_query() 的集合, 也就說它會根據傳入的第一個引數自動判斷是 table 還是 query:
df = pd.read_sql('admin_users', engine)
df
and:
query = '''
SELECT nick_name, email from users where id < 5
'''
df = pd.read_sql(query, engine)
df
以上就是 Pandas 對資料庫的基本操作, 也是 Pandas 基礎學習的最後一篇, 我要開始進軍 Data Analysis. 耽誤好久了, 人笨, 走得慢.......