【问题标题】:Python - writing to SQL server database using sqlalchemy from a pandas dataframePython - 使用 pandas 数据框中的 sqlalchemy 写入 SQL Server 数据库
【发布时间】:2018-11-29 02:39:07
【问题描述】:

我有一个大约 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)

【问题讨论】:

标签: python sql sql-server pandas sqlalchemy


【解决方案1】:

如果您想加快写入 sql 数据库的速度,您可以通过 pandas 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)

【讨论】:

    猜你喜欢
    • 2018-05-04
    • 2014-11-21
    • 1970-01-01
    • 2015-08-18
    • 2016-02-22
    • 2021-07-11
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    相关资源
    最近更新 更多