我正在尝试使用 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/