【发布时间】:2018-10-29 01:04:59
【问题描述】:
我有一个带有“年”列的熊猫数据框。但是,由于外部合并,某些行具有 np.NaN 值。因此,pandas 中列的数据类型转换为 float64 而不是整数(整数不能存储 NaN?)。接下来,我想将数据框存储在 postGreSQL 数据库中。为此我使用:
df.to_sql()
一切正常,但我的 postGreSQL 列现在类型为“双精度”,并且 np.NaN 值现在为 [null]。这一切都是有道理的,因为输入列类型是 float64 而不是整数类型。
我想知道是否有一种方法可以将结果存储在带有 [nans] 的整数类型列中。
例如Notebook
阿米的回答结果:
【问题讨论】:
-
试试
df.astype(object).to_sql()再试一次? -
@coldspeed 更改表架构 - 不确定是否有必要。
-
@AmiTavory 如果架构已经定义,那么我不这么认为。顺便说一句,fillna 不会灰心的... :)
-
@coldspeed 哦,很好 - 错过了。会更新。谢谢!
-
@coldspeed,结果在 postgreSQL 中仍然是双精度的。我在我的问题中添加了一个笔记本,以检查我的实现是否错误。
标签: postgresql pandas null integer nan