3 回答

TA貢獻1831條經驗 獲得超10個贊
要修復DataFrame
列,請使用:
df['col'] = df['col'].str.replace('\D', '').astype(int)

TA貢獻1790條經驗 獲得超9個贊
問題是您將轉義序列作為字符串中的 Unicode 字符讀入。刪除這些字符而不在每個特定顯示上使用替換的最簡單方法是使用unicodedata包。
具體來說:
from unicodedata import normalize
string1 = "2\xa0000000"
new_string = normalize('NFKD', string1)
print(new_string)
輸出:
2 000000
這個包已經內置到我的機器中,但是如果你使用與我不同的方法來構建你的 python 包,你可能需要安裝它。我覺得這更好,因為這種規范化適用于很多不同的格式,所以你不需要每次看到格式不正確的其他內容時使用替換。這是一個轉義序列

TA貢獻1821條經驗 獲得超6個贊
十六進制代碼的字符A0
是不間斷空格??梢赃@么說,在大多數情況下,您可以將其視為一個空間。根據我的經驗,當我處理一些從 Microsoft Office 產品生成的數據時,或者當人們將 HTML 代碼
放在上面時從 Web 中生成的數據,它通常會出現。
不幸的是,python split()
(例如,我不知道您如何處理數據)不會將其視為空間。但由于它只是一個獨特的角色,您可以通過以下方式解決問題:
longstring.replace('\xA0', ' ').split()
PS:再次閱讀您的問題,似乎應該忽略將數字 200 萬作為數據實體。所以你可能想'\xA0'
用空字符串替換。
添加回答
舉報