在set_value / at之后dtype发生了变化

时间:2018-01-17 13:57:15

标签: python pandas

我现在面对一个关于熊猫的奇怪问题,不确定是否有大熊猫陷阱或只是我失踪的东西......

我的pd.Series只是

foo False False False

> a.foo.dtype dtype('bool')

当我使用dataframe.set_value(index, col, None)时,我的整个系列会转换为dtype('float64')(同样适用于a.at[index, col] = None)。

现在我的系列是 foo NaN NaN NaN

您是否知道如何发生这种情况以及如何解决这个问题?

提前致谢。 :)

编辑: 使用0.20.1。

1 个答案:

答案 0 :(得分:1)

我认为问题与我尝试将None分配给bool系列的事实有关,然后它只是尝试转换为其他类型(为什么不反对?)< / p>

修正了首先将dtype更改为objectdataframe.foo = dataframe.foo.astype(object)

现在就像魅力一样。