尝试将csv文件中的负数转换为整数时出现ValueError



你好,我有下面的csv文件,用pandasdata = pd.read_csv("1.csv"):导入

x1,x2,xb,y
−2,1,1,1

我需要用int()将负数(-2(转换为整数,但我得到了ValueError:

print(data.iloc[1-1]['x1']) 
> -2 # str
print(int(data.iloc[1-1]['x1']))
> ValueError: invalid literal for int() with base 10: '−2`

当尝试转换正数时,我没有错误:

print(data.iloc[1-1]['x2'])
> 1 # str
print(int(data.iloc[1-1]['x2']))
> 1 # int

"在"−2〃;不是一个合适的减号,看起来像但不一样。

您的打印效果如下:

print(int(data.iloc[1-1]['x1'].replace("−", "-")))

如果你不想一个接一个地用正确的减号替换有问题的减号,你可以对整列执行这个操作。

data['x1'] = data['x1'].str.replace("−", "-").astype("int")

问题是许多unicode字符看起来像减号…

您在问题中显示的字符是U+2212 MINUS SIGN。用于负数的字符是ASCII U+002D HYPHEN-MINUS。虽然打印相同,但它们不同的字符。你必须清理你的数据文件。。。

相关内容

  • 没有找到相关文章

最新更新