3 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
要修復(fù)DataFrame
列,請(qǐng)使用:
df['col'] = df['col'].str.replace('\D', '').astype(int)

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

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