为了账号安全,请及时绑定邮箱和手机立即绑定

将包含NaN的Pandas列转换为dtype`int`

将包含NaN的Pandas列转换为dtype`int`

开心每一天1111 2019-08-12 18:33:49
将包含NaN的Pandas列转换为dtype`int` 我将.csv文件中的数据读取到Pandas数据帧,如下所示。对于其中一列,即id我想将列类型指定为int。问题是id系列缺少/空值。当我尝试id在读取.csv时将列转换为整数时,我得到:df= pd.read_csv("data.csv", dtype={'id': int}) error: Integer column has NA values或者,我尝试在阅读后转换列类型,如下所示,但这次我得到:df= pd.read_csv("data.csv") df[['id']] = df[['id']].astype(int)error: Cannot convert NA to integer我怎么解决这个问题?
查看完整描述

3 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

在整数列中缺少NaN rep是熊猫“陷阱”

通常的解决方法是简单地使用浮动。


查看完整回答
反对 回复 2019-08-12
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

在版本0.24。+ pandas已经获得了保存具有缺失值的整数dtypes的能力。


可以为空的整数数据类型。


Pandas可以表示可能缺少值的整数数据arrays.IntegerArray。这是在pandas中实现的扩展类型。它不是整数的默认dtype,也不会被推断; 你必须明确地将dtype传递给array()或Series:


arr = pd.array([1, 2, np.nan], dtype=pd.Int64Dtype())

pd.Series(arr)


0      1

1      2

2    NaN

dtype: Int64


查看完整回答
反对 回复 2019-08-12
  • 3 回答
  • 0 关注
  • 4292 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信