pandas.read_sql(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None, columns=None, chunksize=None)
- 1
-
各參數意義
- sql:SQL命令字符串
- con:連接sql數據庫的engine,一般可以用SQLalchemy或者pymysql之類的包建立
- index_col: 選擇某一列作爲index
- coerce_float:非常有用,將數字形式的字符串直接以float型讀入
- parse_dates:將某一列日期型字符串轉換爲datetime型數據,與pd.to_datetime函數功能類似。可以直接提供需要轉換的列名以默認的日期形式轉換,也可以用字典的格式提供列名和轉換的日期格式,比如{column_name: format string}(format string:"%Y:%m:%H:%M:%S")。
- columns:要選取的列。一般沒啥用,因爲在sql命令裏面一般就指定要選擇的列了
- chunksize:如果提供了一個整數值,那麼就會返回一個generator,每次輸出的行數就是提供的值的大小。
-
設置參數can–>創建數據庫鏈接的兩種方式
import pandas as pd
import sqlalchemy
from sqlalchemy import create_engine
用sqlalchemy構建數據庫鏈接engine
connect_info = ‘mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8’
engine = create_engine(connect_info)
sql 命令
sql_cmd = “SELECT * FROM table”
df = pd.read_sql(sql=sql_cmd, con=engine)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
import pandas as pd
import pymysql
# sql 命令
sql_cmd = “SELECT * FROM table”
# 用DBAPI構建數據庫鏈接engine
con = pymysql.connect(host=localhost, user=username, password=password, database=dbname, charset=‘utf8’, use_unicode=True)
df = pd.read_sql(sql_cmd, con)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
read_sql本質上是read_sql_table、read_sql_query的統一方式。
三者都return返回DataFrame。
Read SQL database table into a DataFrame.