DataFrame 與 MySQL

      在〈DataFrame 與 MySQL〉中尚無留言

MySQL 轉 DataFrame

底下代碼說明如何取得資料庫的欄位名稱,再產生 DataFrame 格式。

import mysql.connector as mysql
import pandas as pd
conn=mysql.connect(host="ip", user="帳號", password="密碼", database="資料庫")
cursor=conn.cursor()
cursor.execute("select * from 台灣股市 order by 日期")
rs=cursor.fetchall()

#取得資料庫欄位名
descriptions=cursor.description
columns=[d[0] for d in descriptions]

df=pd.DataFrame(data=rs, columns=columns)
print(df)
結果:
         id          日期        開盤        最高        最低        收盤
0         1  1999-01-05   6310.41   6310.41   6111.64   6152.43
1         2  1999-01-06   6082.02   6280.93   5988.06   6199.91
2         3  1999-01-07   6280.38   6409.55   6181.62   6404.31
3         4  1999-01-08   6371.34   6492.87   6371.34   6421.75
4         5  1999-01-11   6472.02   6492.90   6392.49   6406.99

DataFram 儲存庫料庫

df.values 是將 df 轉成 numpy 格式,但 cursor.executemany() 並不吃二維 numpy 格式,所以需把二維 numpy 改成二維 list,如下代碼所示。

import mysql.connector as mysql
conn, cursor=G.connect()
df=......................
datas=[row.tolist() for row in df.values]
cmd="insert into table ...............")
cursor.executemany(cmd, datas)
conn.commit()
conn.close()

發佈留言

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