如何在 python 中查找和删除无效/无意义的文本?

How to find and remove invalid / meaningless text in python?

我想删除单元格上无意义或无效的数据。 (无意义的字母组合或单元格中只有数字)

下面是我的数据

ID         A1           B1          C1
1          apple        adfs        banana
2          I love you   mom         111
3          zaaaaf       dad         348080

预期输出如下。

ID         A1           B1          C1
1          apple                    banana
2          I love you   mom         
3                       dad          

我该怎么做?

您可以将值与来自 ntlk 的某些字典进行比较,如果不匹配则删除值,但仍然有可能删除某些值,例如 mom 如果不存在于字典 ntlk:

import nltk
words = set(nltk.corpus.words.words())

#
f = lambda x: " ".join(w for w in nltk.wordpunct_tokenize(x) if w.lower() in words)

#apply only for object columns (obviously strings)
cols = df.select_dtypes(object).columns
df[cols] = df[cols].applymap(f)
print (df)
   ID          A1   B1      C1
0   1       apple       banana
1   2  I love you             
2   3              dad