簡體   English   中英

Python-使用Pandas數據框中的sqlalchemy寫入SQL Server數據庫

[英]Python - writing to SQL server database using sqlalchemy from a pandas dataframe

我有一個大約300,000行(20mb)的pandas數據框,並想寫入SQL Server數據庫。

我有以下代碼,但是執行起來非常慢。 想知道是否有更好的方法?

import pandas
import sqlalchemy

engine = sqlalchemy.create_engine('mssql+pyodbc://rea-eqx-dwpb/BIWorkArea? 
driver=SQL+Server')

df.to_sql(name='LeadGen Imps&Clicks', con=engine, schema='BIWorkArea', 
if_exists='replace', index=False)

如果要加快寫入sql數據庫的過程,可以通過pandas DataFrame的數據類型在數據庫中預先設置表的DataFrame

from sqlalchemy import types, create_engine
d={}
for k,v in zip(df.dtypes.index,df.dtypes):
    if v=='object':
       d[k]=types.VARCHAR(df[k].str.len().max())
    elif v=='float64':
       d[k]=types.FLOAT(126)
    elif v=='int64':
       d[k] = types.INTEGER()

然后

df.to_sql(name='LeadGen Imps&Clicks', con=engine, schema='BIWorkArea', if_exists='replace', index=False,dtype=d)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM