解决ValueError: invalid literal for int() with base 10: ‘0.0‘
问题描述将某个字符类型的字段转为`int`时,以下的两种方法(其中第二种方法是直接用`int()`转换)都报错如题:```python# 1.方法一beat_data['label'] = beat_data['label'].astype(int)
·
一、问题描述
将某个字符类型的字段转为int
时,以下的两种方法(其中第二种方法是直接用int()
转换)都报错如题:
# 1.方法一
beat_data['label'] = beat_data['label'].astype(int)
# 2.方法二
def convert_numeric_feature(val):
v = int(val)
# v = int(float(val))
if v > 2:
return int(np.log(v) ** 2)
else:
return v - 2
# 报错如下:
File "pandas/_libs/lib.pyx", line 668, in pandas._libs.lib.astype_intsafe
ValueError: invalid literal for int() with base 10: '0.0'
二、解决办法
使用int()
直接将带小数点的字符串转为int
会报错,先转为float
再转为int
即可。
v = int(float(val))
更多推荐
已为社区贡献25条内容
所有评论(0)