【发布时间】:2018-10-12 13:35:12
【问题描述】:
我正在尝试使用 regular expressions 过滤 pandas 数据帧。
我想删除那些不包含任何字母的行。例如:
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)))
或
df['Col A.'] = ~(df['Col A.'].filter(regex='|'.join(digits)))
或
df['Col A.'] = df[~(df['Col A.'].filter(regex='|'.join(digits))) & (df['Col A.'].filter(regex='|'.join(letters)))]
【问题讨论】:
-
是否需要正则表达式?
-
@jpp 不需要正则表达式。只是我到目前为止所遵循的方法
标签: python regex python-2.7 pandas dataframe