pd.read_sql()參數詳解

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–>創建數據庫鏈接的兩種方式

  1. 用sqlalchemy構建數據庫鏈接
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
  1. 用DBAPI構建數據庫鏈接
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

read_sql本質上是read_sql_table、read_sql_query的統一方式。

三者都return返回DataFrame。

  1. read_sql_table

Read SQL database table into a DataFrame.

  1. read_sql_query
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章