将 numpy float64 NaN 转换为 Postgresql Null

converting numpy float64 NaN to Postgresql Null

提问人:Md. Rezaul Karim 提问时间:3/15/2022 最后编辑:Md. Rezaul Karim 更新时间:3/19/2022 访问量:395

问:

我有一个具有 float64 数据类型的数据帧,其中包含一些 NaN。我正在尝试将数据帧写入PGSQL数据库,但它失败并出现以下错误:

invalid input syntax for type double precision

一直坚持这个错误。我怎样才能将浮点列(包括NaN)写到posgresql..?我使相应的PGSQL列可为空,但这似乎并不能解决它。

任何帮助将不胜感激。谢谢。

更新:

我发现了为什么会出现错误的问题。它来自我用来写入数据库的COPY_FROM。该方法不允许在 Float 类型列中写入 null。

因此,我成功地使用了:

df.to_sql()

这比COPY_FROM方法花费了大约 60 倍的时间。

python pandas postgresql 精度 nan

评论

1赞 Clej 3/20/2022
如果您使用的是 psycopg2,它有一个“null”参数,您可以在函数 (psycopg.org/docs/cursor.html#cursor.copy_from) 中设置。设置 null='None' 可以完成这项工作吗?copy_from()
0赞 Md. Rezaul Karim 3/21/2022
@Clej你点赞..nul='None' 不起作用,但我尝试用 null='' 转储,它就像一个魅力!谢谢伙计。
0赞 Clej 3/22/2022
很高兴它服务了!

答: 暂无答案