![](/img/trans.png)
[英]Keep part of string based on certain characters in a DataFrame column
[英]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.