0

我正在尝试使用 Pandas 的 to_sql 方法通过循环将多个 csv 文件上传到 SQL Server 数据库中的相应表。

    fileLoc = r'C:\Users\hcole\Downloads\stats.csv\\'
    dfArray = ['file1', 'file2', 'file3', 'file4']

    for name in dfArray:
        df = pd.read_csv(fileLoc + name + '.csv')
        df.columns = df.columns.str.replace(' ', '')
        df.to_sql(name, engine, if_exists = 'append', index = False)

我的连接字符串和数据库连接工作正常;我通过前几个(和小)文件就好了。但是,当我点击包含约 135k 行的 file4 时,将所有数据上传到数据库需要将近一个小时。在阅读了有关 to_sql 的“chunksize”参数的文档后,我尝试降级到 Pandas 0.22 版,但没有加快进程。

任何有关如何提高速度的提示将不胜感激。谢谢你。

4

2 回答 2

0

使用 pyODBC 的 fast_executemany 加速 pandas.DataFrame.to_sql

自 2019-03-04 发布的 SQLAlchemy 1.3.0 以来,sqlalchemy 现在支持 engine = create_engine(sqlalchemy_url, fast_executemany=True)

于 2019-12-19T09:58:17.447 回答
0

在尝试写入 SQL 之前,尝试将所有数据堆叠到单个 DataFrame 中。

计时这个。如果它需要接近那个小时,那么输入数据就会很大。

如果不是这样,则您与数据库的连接不太可能。

于 2018-10-02T05:24:51.177 回答