簡體   English   中英

僅將某些字符保留在Pandas數據框列中

[英]Only keep certain characters in a Pandas dataframe column

我在數據框中有一個帶有許多特殊字符(主要是法語口音)的列。 我需要將其與另一個僅保留某些字符(AZ 0-9'- space )而其他掉落的源進行合並,因此需要以相同的方式清理文本以使其工作。

我認為正則表達式將是關鍵,因此我嘗試了以下兩個選項。

df['city'] = re.sub("[^ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'-. ]", "", df['city'] )    
df['city'] = df['city'] .apply(lambda x: re.sub("[^ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'-. ]","",x))

第一個選項給我TypeError:期望的字符串或緩沖區,而第二個選項給我TypeError:期望的字符串或緩沖區。

當我只測試一個字符串時,代碼就可以工作,所以我覺得在某處有點毛刺。 我不能把手放在上面。

df['city'].str.replace("[^ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'-. ]", "")

可能正是您想要的。

我認為第二個示例將起作用。 也許“ city列中沒有“無”? 請嘗試如下。

REGEX_STR = "[^ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'-. ]"
df['city'] = df['city'].apply(lambda x: re.sub("", x) if x else '')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM