首页 > 解决方案 > 字符串(对象)数据的 to_sql 内存不足错误

问题描述

我正在使用 to_sql 将 pandas 数据框写入 SQL 服务器数据库。数据框很小(1 列,100 行)。但是,我收到错误:

 cursor.executemany(statement, parameters)
 MemoryError

该列的数据类型是对象(即字符串)。如果我将 dataType 转换为 INT,则代码执行时不会出错。

为什么对象数据会导致内存不足错误,我该如何解决?

标签: pythonsqlpandasdataframe

解决方案


Python dtype 对象字符串不同。是否dtype()返回“对象”?您说您的数据有一列 - 它是存储为 numpy 数组还是 DataFrame?如果真的DataFrame,使用df.dtypes查看每一列的数据类型(不是整个DataFrame的dtype,是一个对象)。如果该列是一个对象,那么您正在尝试将每条记录作为 Python 对象传递 - 所以数据结构根本不是真正的“小”。在这种情况下,转换为浮点数或字符串与转换为 int 一样有效。


推荐阅读