我有一个包含文本数据的数据框,我正在尝试清除具有空内容值的行。我有一行的内容列如下所示:
articles.loc[197040, 'content']
' '
我尝试使用 .isnull() 清理它,但它无法识别空字符串。所以我求助于正则表达式并尝试:
nothing = re.compile(r'\W{1,}')
articles = articles[articles['content'] != nothing]
但这会留下空文章。如果我尝试:
' ' == nothing
我得到False
。但是regex tester似乎表明这应该有效。使用 r'\W*'
也会返回 False
。
当尝试其他正则表达式组合时,其他无意义的字符串(例如逗号和空格的混合)仍然存在问题。
感谢您的帮助。
编辑:
这里也没有识别等效性:
'what.' == re.compile(r'\w*\.')
False
或者在这里:
'6:45' == r'[^A-Z]{1,}'
False
等等等等。
最佳答案
您可以使用 isspace
解决该问题内置,如果字符串中只有空白字符且至少有一个字符,则返回 true。
演示,还过滤空字符串:
import pandas as pd
articles = pd.DataFrame({'content' : ['foo','bar',' ','foo',' ','']})
articles = articles[(~articles['content'].str.isspace()) & (articles['content'] != '')]
>>> articles
content
0 foo
1 bar
3 foo
关于python - 正则表达式不将匹配识别为 True,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45002793/