【问题标题】:Python SQL Pandas - Cannot import dataframe larger than 27650 rows into databasePython SQL Pandas - 无法将大于 27650 行的数据框导入数据库
【发布时间】:2021-04-08 03:22:17
【问题描述】:

我正在尝试使用以下代码将一个大型 csv 文件(500 万行)导入本地 MySQL 数据库:

代码:

import pandas as pd
from sqlalchemy import create_engine


engine = create_engine('mysql+mysqlconnector://[username]:[password]@[host]:[port]/[schema]', echo=False)
    df = pd.read_csv('C:/Users/[user]/Documents/Sales_Records.csv')
    df = df.head(27650)
    df.to_sql(con= engine, name='data', if_exists='replace', chunksize = 50000)

如果我执行此代码,只要 df.head([row limit]) 小于 27650,它就可以工作。但是,只要我将此行限制增加一行,导入就会失败,现在数据是转移到 MySQL。有谁知道为什么会这样?

【问题讨论】:

    标签: python sql pandas


    【解决方案1】:

    Pandas DataFrame 应该没有内存限制,除了本地机器的内存。所以我认为这是因为你的机器内存不足。您可以使用 memory_profiler,这是一个我喜欢用来检查实时内存使用情况的 Python 库。可以在此处的文档中找到更多信息:https://pypi.org/project/memory-profiler/

    您不应该一次性读取大文件,因为它是单点故障并且速度很慢。将数据分块加载到数据库中,就像他们在这篇文章中所做的那样:https://soprasteriaanalytics.se/2020/10/22/working-with-large-csv-files-in-pandas-create-a-sql-database-by-reading-files-in-chunks/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-21
      • 2019-03-21
      • 1970-01-01
      • 2016-02-22
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      • 2014-10-18
      相关资源
      最近更新 更多