过滤不包含字母的所有行 /α/ 在 pandas

我正在尝试过滤
pandas

dataframe 通过
regular expressions

.
我想删除那些不包含任何字母的行。 例如:


Col A.
50000
$927848
dog
cat 583
rabbit 444


我所需的结果如下:


Col A.
dog
cat 583
rabbit 444


我试图使用过滤器参数来解决此问题的不成功
regex


pandas

. 看吹 当我尝试结合过滤器的两个条件时,我明确地遇到了问题。 我怎样才能实现这一目标?

选项 1:


df['Col A.'] = ~df['Col A.'].filter/regex='\d+'/


选项 2


df['Col A.'] = df['Col A.'].filter/regex=\w+/


选项 3


from string import digits, letters
df['Col A.'] = /df['Col A.'].filter/regex='|'.join/letters///


OR


df['Col A.'] = ~/df['Col A.'].filter/regex='|'.join/digits///


OR


df['Col A.'] = df[~/df['Col A.'].filter/regex='|'.join/digits/// & /df['Col A.'].filter/regex='|'.join/letters///]
已邀请:

卫东

赞同来自:

我想你会需要
http://pandas.pydata.org/panda ... .html
过滤包含字母的值
http://pandas.pydata.org/panda ... exing
:


df = df[df['Col A.'].str.contains/'[A-Za-z]'/]
print /df/
Col A.
2 dog
3 cat 583
4 rabbit 444


如果有一些值
NaN

s, 您可以传输参数:


df = df[df['Col A.'].str.contains/'[A-Za-z]', na=False/] 
print /df/
Col A.
3 dog
4 cat 583
5 rabbit 444

二哥

赞同来自:

你试过:


df['Col A.'].filter/regex=r'\D'/ # Keeps only if there's a non-digit character


或者:


df['Col A.'].filter/regex=r'[A-Za-z]'/ # Keeps only if there's a letter /alpha/


或者:


df['Col A.'].filter/regex=r'[^\W\d_]'/ # More info in the link below...


解释:

卫东

赞同来自:

df['Col A.'].str.contains/r'^\d+$', na=True/

# 如果字符串仅来自数字或INT/然后驶向将是结果 NaN 转化B. true

例如: [50000, '$927848', 'dog', 'cat 583', 'rabbit 444', '3 e 3', 'e 3', '33', '3 e']
我将会给 :
[真实,谎言,谎言,谎言,谎言,谎言,谎言,真理,谎言]

裸奔

赞同来自:

您可以使用
^.*[a-zA-Z].*$


https://regex101.com/r/b84ji1/1
细节


^

: 家庭线条


.*

: 对应任何符号


[a-zA-Z]

: 赶上字母


$

: 字符串结束

要回复问题请先登录注册