python转float类型_python中从float到in的类型转换

我认为您需要^{}首先,因为float不能强制转换为int:data_df['grade'] = pd.to_numeric(data_df['grade']).astype(int)

另一个解决方案首先转换为float,然后转换为int:data_df['grade'] = data_df['grade'].astype(float).astype(int)

样品:data_df = pd.DataFrame({'grade':['10','20','17.44']})

print (data_df)

grade

0 10

1 20

2 17.44

data_df['grade'] = pd.to_numeric(data_df['grade']).astype(int)

print (data_df)

grade

0 10

1 20

2 17data_df['grade'] = data_df['grade'].astype(float).astype(int)

print (data_df)

grade

0 10

1 20

2 17

---

如果某些值无法转换并且在to_numeric之后,则获取错误:ValueError: Unable to parse string

可以添加参数errors='coerce',以便将非数值转换为NaN。

如果NaN值,则无法转换为int,请参见docs:data_df = pd.DataFrame({'grade':['10','20','17.44', 'aa']})

print (data_df)

grade

0 10

1 20

2 17.44

3 aa

data_df['grade'] = pd.to_numeric(data_df['grade'], errors='coerce')

print (data_df)

grade

0 10.00

1 20.00

2 17.44

3 NaN

如果要将NaN更改为某些数字,例如0,请使用^{}:data_df['grade'] = pd.to_numeric(data_df['grade'], errors='coerce')

.fillna(0)

.astype(int)

print (data_df)

grade

0 10

1 20

2 17

3 0

小建议:

在使用errors='coerce'之前,请检查无法通过^{}强制转换为数值的所有行:print (data_df[pd.to_numeric(data_df['grade'], errors='coerce').isnull()])

grade

3 aa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值