gpt4 book ai didi

python - 筛选“pandas”中不包含字母(alpha)的所有行

转载 作者:太空宇宙 更新时间:2023-11-04 06:59:04 25 4
gpt4 key购买 nike

我正在尝试使用 正则表达式 过滤 pandas 数据框。我想删除那些不包含任何字母的行。例如:

Col A.
50000
$927848
dog
cat 583
rabbit 444

我想要的结果是:

Col A.
dog
cat 583
rabbit 444

我一直在尝试使用 regexpandas 过滤器选项解决这个问题,但没有成功。见打击。当我尝试合并过滤器的两个条件时,我特别遇到了问题。我怎样才能做到这一点?

选项 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)))]

最佳答案

我想你需要 str.contains通过 boolean indexing 过滤包含字母的值:

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

如果有一些NaN的值你可以传递一个参数:

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

关于python - 筛选“pandas”中不包含字母(alpha)的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50134687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com