我正在尝试使用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
答案 0 :(得分:0)
问题出在您的熊猫版本:0.14.1。
从熊猫0.15开始,to_sql支持写入NaN值。
您可以尝试升级熊猫。
此外,现在您可以将NAN
转换为NONE
,例如:
df = df.astype(object).where(pd.notnull(df), None)