熊猫DataFrame.to_sql和nan值

时间:2018-11-26 10:32:38

标签: python postgresql pandas dataframe sqlalchemy

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

我收到以下错误:

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

当我用zéros替换nan值时,插入会根据需要发生,因此真正的nan值应该归咎于我的错误。

我尝试将nan值转换为None和np.nan,但是遇到相同的错误。 所以问题是:我需要哪种nan格式,以便pd.to_sql正确处理它?<​​/ p>

我的限制是:python 2.7熊猫0.14.1,sqlalchemy 0.9.8,Postgres 9.2

1 个答案:

答案 0 :(得分:0)

问题出在您的熊猫版本:0.14.1。

  

从熊猫0.15开始,to_sql支持写入NaN值。

您可以尝试升级熊猫。

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

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