python - pandas DataFrame.to_sql 和 nan 值

标签 python postgresql pandas dataframe sqlalchemy

我正在尝试使用 pandas DataFrame.to_sql 在 Postgres 数据库的表中插入值。我在一列整数中有一些不属于任何约束的 nan 值。

我收到以下错误:

sqlalchemy.exc.DataError: (DataError) integer out of range

当我用零替换 nan 值时,插入会按需要发生,因此实际上是 nan 值造成了我的错误。

我尝试将 nan 值转换为 None 和 np.nan ,但出现相同的错误。 所以问题是:我需要什么 nan 格式才能使 pd.to_sql 正确处理它?<​​/p>

我的限制是:python 2.7 pandas 0.14.1、sqlalchemy 0.9.8、Postgres 9.2

最佳答案

问题出在你的 pandas 版本上:0.14.1。

Starting with pandas 0.15, to_sql supports writing NaN values.

您可以尝试升级您的 pandas。

此外,现在您可以将 NAN 转换为 NONE,如下所示:

df = df.astype(object).where(pd.notnull(df), None)

关于python - pandas DataFrame.to_sql 和 nan 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53479213/

相关文章:

python - 如何在 Python 中创建数据框数组

python - 通过重复一个值从不等长的长度创建一个 Pandas 数据帧

python - 使用 pandas pd.cut 生成带有 statsmodels 的分类变量

python - 如何通过firefox_options配置geckodriver的日志级别为trace?

python - pyodbc 无法连接到数据库

sql - PostgreSQL 忽略时间戳列上的索引

sql - 什么是正确的查询?

python - Django 1.5 : How do I add a new model field to an existing table using South without having to drop a table?

python - 编译 cython Hello World 示例 : don't know how to compile C/C++ code on platform

python - tkinter 单选按钮不显示类中的值