pandas連線MySQL資料庫的兩種方式

2021-10-09 02:59:10 字數 1614 閱讀 4747

read_sql(sql, 

con,

index_col=

none

, coerce_float=

true

, params=

none

, parse_dates=

none

, columns=

none

, chunksize=

none

)

引數的意義:

sql:為可執行的sql語句

con:資料庫的連線

index_col:選擇某一列作為index

coerce_float:將數字形式的字串直接以float型讀入

params:返回傳遞引數的查詢字串

parse_dates:將某一列日期型字串轉換為datetime型資料,與pd.to_datetime函式功能類似。可以直接提供需要轉換的列名以預設的日期形式轉換,也可以用字典的格式提供列名和轉換的日期格式,比如(format string:"%y:%m:%h:%m:%s")

colunms:要選取的列。一般沒啥用,因為在sql命令裡面一般就指定要選擇的列了

chunksize:如果提供了乙個整數值,那麼就會返回乙個generator,每次輸出的行數就是提供的值的大小。

import pandas as pd

import pymysql

conn = pymysql.connect(host=

'localhost'

, user=

'root'

, password='',

database=

'database_name'

)df = pd.read_sql(

"select * from table_name"

,con=conn)

import sqlalchemy

from sqlalchemy import create_engine

#connect_info = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(db_user, db_pass, db_host, db_port, database)

connect_info =

'mysql+pymysql://{}:{}@{}:{}/{}'

.format

('root',''

,'localhost'

,3306

,'nowcoderdb'

)engine=create_engine(connect_info)

df2=pd.read_sql(

"select * from table_name"

,con=engine)

Pandas資料連線

s1 pd.series 0,1 index a b s2 pd.series 2,3,4 index c d e s3 pd.series 5,6 index f g in 4 pd.concat s1,s2,s3 series行合併 out 4 a 0 b 1c 2d 3e 4f 5g 6dty...

pandas資料連線合併

1 df1和df2相同列合併 圖中可以看出合併後出現了重複行,可以使用df.drop duplicates 刪除重複行 另外我們可以看到合併之後的資料行索引還是以前df的索引值,要想使新生成的df索引從0開始,可以新增 ignore index true 執行結果如下 2 df1和df2不同列合併 ...

pandas 讀寫mysql資料

pandas具有直接讀寫mysql的api介面,簡單易學,這裡就給大家簡單介紹下。import pymysql import pandas as pd def query in db sql conn pymysql.connect host host ip host ip port your po...