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

如何在python中查找和删除无效/无意义的文本?,python,pandas,nlp,nltk,corpus,Python,Pandas,Nlp,Nltk,Corpus,我想删除单元格中无意义或无效的数据。 (单元格中无意义字母或数字的组合) 我的数据如下。 ID A1 B1 C1 1 apple adfs banana 2 I love you mom 111 3 zaaaaf dad 348080 ID A1 B1 C1

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

我的数据如下。

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          
预期输出如下。

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())

#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        

您可以将值与一些指令进行比较,这里来自
ntlk
,如果与删除值不匹配,则可以删除一些值,如
mom
,如果字典ntlk中不存在:

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        

一套漂亮的标签。我能看到的唯一使用的东西(从输出中)可能是python/pandas。你真的试过用它们中的任何一个来解决这个问题吗?拜托,一套漂亮的标签。我能看到的唯一使用的东西(从输出中)可能是python/pandas。你真的试过用它们中的任何一个来解决这个问题吗?请。@jezrael我运行了您的代码,但出现了TypeError:应为字符串或字节,如object@purplecollar-似乎存在一些与数据相关的问题,数据是否机密?@jezrael类型的列是对象,并且有许多空白列。此外,许多列都有语句值。@purplecollar-您能测试值是否为字符串吗@耶斯雷尔好的,我会试试你的解决办法然后离开feedback@jezrael我运行了您的代码,但出现了TypeError:应为字符串或字节,如object@purplecollar-似乎存在一些与数据相关的问题,数据是否机密?@jezrael类型的列是对象,并且有许多空白列。此外,许多列都有语句值。@purplecollar-您能测试值是否为字符串吗@jezrael好的,我会尝试你的解决方案,然后留下反馈