繁体   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