解决ValueError: invalid literal for int() with base 10: ‘0.0‘

一、问题描述

将某个字符类型的字段转为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))

猜你喜欢

转载自blog.csdn.net/qq_35812205/article/details/128647617
今日推荐