您好,我有下面的 csv 檔案,用 pandas 匯入data = pd.read_csv("1.csv"):
x1,x2,xb,y
?2,1,1,1
我需要將負數(-2)轉換為整數int(),但我得到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
uj5u.com熱心網友回復:
“-2”中的“-”不是正負號,看起來像但又不一樣。
您的列印將像這樣作業:
print(int(data.iloc[1-1]['x1'].replace("?", "-")))
如果您不想將有問題的減號一一替換為正確的減號,則可以對整個列執行此操作。
data['x1'] = data['x1'].str.replace("?", "-").astype("int")
uj5u.com熱心網友回復:
問題是許多 unicode 字符看起來像一個減號......
您在問題中顯示的字符是 U 2212 減號。用于負數的字符是 ASCII U 002D HYPHEN-MINUS。雖然印刷相同,但它們是不同的字符。您將不得不清理您的資料檔案...
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/525424.html
標籤:Python熊猫CSV
上一篇:使用函式就地改變多個熊貓資料框
