在Pnadas中过滤出包含特殊字符和数字的字符串时出错



我有如下所示的data frame(location)。我还将当前代码粘贴在下面,但它会过滤掉所有包含数字和特殊字符的记录。

我的问题是当单词之间有空格字符时,例如NEWYORK CITY, NEWYORK CITY。我不过滤字与字之间的空格。

输入

>location.head(8)

CITY        COUNTRY
AGNIN34         FR
(REYDON)        GB
MARSCIANO       IT
SANXIANG TOWN    CN
SIZIANO         IT
APELDOORN       NL
REYDON          GB
NEWYORK CITY    US

我的当前代码:

out = location[location.apply(lambda c: c.str.match('(?i)[a-z]+$')).all(1)]

预期输出

CITY        COUNTRY
MARSCIANO       IT
SANXIANG TOWN    CN
SIZIANO         IT
APELDOORN       NL
REYDON          GB
NEWYORK CITY    US

如何做到这一点?

检查

out = location[location.CITY.astype(str).str.match('^[a-zA-Z ]*$')]

使用str.containsna=False标志集:

out = location[location["CITY"].str.contains(r'^[A-Za-z ]+$', na=False, regex=True)]

最新更新