python dtype强制类型转换_python - 将包含NaN的Pandas列转换为dtype`int`

这篇博客讨论了在Pandas中遇到的问题:如何将包含缺失值(NaN)的列从浮点型转换为整型(int)。作者提到在尝试直接转换时会遇到错误。博客提供了多个解决方案,包括使用浮点型作为中间类型、使用特定的缺失值标记、利用Pandas的Int64Dtype处理缺失值,以及删除含有NaN的行等。
摘要由CSDN通过智能技术生成

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

我将.csv文件中的数据读取到Pandas数据帧,如下所示。 对于其中一列,即id,我想将列类型指定为int.问题是id系列有缺失值/空值。

当我尝试在读取.csv时将id列转换为整数时,我得到:

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

我怎么解决这个问题?

Rhubarb asked 2019-07-25T20:55:59Z

11个解决方案

113 votes

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

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

Andy Hayden answered 2019-07-25T20:56:16Z

19 votes

我的用例是在加载到数据库表之前重新整理数据:

df[col] = df[col].fillna(-1)

df[col] = df[col].astype(int)

df[col] = df[col].astype(str)

df[col]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值