![](/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.