我有一个带有整数条目的系列,但也有一些空条目。它表示为带有dtype=float64
的系列。我想将它转换为带有dtype=object
的系列,其中整数条目存储为Python int
,空条目存储为np.nan
。
我有两次尝试。第一个不起作用,因为int
(意外地?)仍然转换为float
。第二部分正如我所希望的那样。
s = pd.Series([1, np.nan])
s = s.astype(object)
i = s.notnull()
s[i] = s[i].astype(int)
type(s[0])
以上代码段返回float
。 :(
s = pd.Series([1, np.nan])
s = s.astype(object)
i = s.notnull()
s[i] = list(s[i].astype(int))
type(s[0])
以上代码段返回int
。 :)
为什么第一个例子不起作用,即使系列有dtype=object
?转换为list
似乎是一个非常奇怪的黑客,让它工作,但我找不到任何其他方法来做到这一点。
在Pandas中有更简单的方法吗?
答案 0 :(得分:1)
关于在熊猫中是否有更简单的方法,从0.24版(2019年1月)开始,如果您有Java
且整数值不存在,可以使用nullable integers数据:
Series