【问题标题】:to_sql out of memory error for string (object) data字符串(对象)数据的 to_sql 内存不足错误
【发布时间】:2020-09-18 17:43:03
【问题描述】:
我正在使用 to_sql 将 pandas 数据帧写入 SQL 服务器数据库。数据框很小(1 列,100 行)。但是,我收到了错误:
cursor.executemany(statement, parameters)
MemoryError
列的数据类型是对象(即字符串)。如果我将 dataType 转换为 INT,则代码执行时不会出错。
为什么对象数据会导致内存不足错误,我该如何解决?
【问题讨论】:
标签:
python
sql
pandas
dataframe
【解决方案1】:
Python dtype 对象 不 与字符串相同。 dtype() 是否返回“对象”?您说您的数据有一列 - 它是存储为 numpy 数组还是 DataFrame?如果它是真正的DataFrame,使用df.dtypes查看每一列的数据类型(不是整个DataFrame的dtype,它是一个对象)。如果列是一个对象,那么您正试图将每条记录作为 Python 对象传递——因此数据结构根本不是真正的“小”。在这种情况下,转换为 float 或 string 与转换为 int 一样。