你好,我有下面的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。虽然打印相同,但它们是不同的字符。你必须清理你的数据文件。。。