dataframe to sql


使用pandas的to_sql時,還涉及到一些sql數據庫的操作

在網上找到一段代碼,很方便使用。來源:blog.csdn.net/qcyfred/article/details/78085243?locationNum=8&fps=1

不過得先自己使用sql語言命令建立起數據庫(當然用python來建立也行,比較麻煩太多命令記不清楚了)

from sqlalchemy import create_engine  
      
db_info = {'user':'user',  
    'password':'pwd',  
    'host':'localhost',  
    'database':'xx_db'  
}  
      
engine = create_engine('mysql+pymysql://%(user)s:%(password)s@%(host)s/%(database)s?charset=utf8' % db_info,encoding='utf-8')    #這里直接使用pymysql連接
# engine = create_engine("mysql://root:@localhost:3306/webpy?charset=utf8",encoding="utf-8", echo=True)(之前用這個,結果報錯沒有mysqldb的包,正好之前用的就是pymysql我也沒安裝這個就換了)

不過這里得先安裝一下sqlalchemy包

df.to_sql('t_trade_record',engine,index=False,if_exists=“xxx”)# 就可以把其生成在對應的數據庫下的一張表了(注意第一個參數不需要.sql)

 

-----------------------------------------------------------------------------------------------------------------------------------------------------

遇到的問題:

1、如上:

我觀察了一下我的dataframe里面,也沒有出現一些這樣的亂碼東西,也不知道咋回事,但好像不影響最終結果

2.安裝sqlalchemy時

但再試一下就成功了。。。

 

 

--------------------------------------------------------------------------------------------------------------------------------------------------------

更新:

https://stackoverflow.com/questions/32235696/pandas-to-sql-gives-unicode-decode-error  這里有一篇關於連接數據庫的問答

ENGINE = create_engine("mssql+pymssql://" +
                       config.get_local('CEDS_USERNAME') + ':' +
                       config.get_local('CEDS_PASSWORD') + '@' +
                       config.get_local('CEDS_SERVER') + '/' +
                       config.get_local('CEDS_DATABASE'),
                       encoding="utf-8")

但我沒試過上面的,應該可以吧

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM