我想删除单元格上无意义或无效的数据。(无意义的字母或仅单元格中的数字的组合)
我的数据在下面。
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
中比较,如果不匹配,则删除值,但是如果字典ntlk中不存在,则仍然可以删除某些值,例如mom
:
import nltk
words = set(nltk.corpus.words.words())
#https://stackoverflow.com/a/41290205
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