我过滤了数据框中包含“no”一词的列。我想把那些带“不”的短语打印出来。
例如,如果这是我的数据集:
index | Column 1
------------------------------------------------------------------------
0 | no school for the rest of the year. no homework and no classes
1 | no more worries. no stress and no more anxiety
2 | no teachers telling us what to do
我想得到“no”后面的单词/短语。正如你所看到的,单词“no”在一些字符串中出现超过1次。我希望我的输出是
no school
no homework
no classes
no more worries
no stress
no more anxiety
no teachers
这是我目前为止的代码:
#make a copy of the column I'd like to filter
copy = df4['phrases'].copy()
#find rows that contain the word 'no'
nomore = copy.str.contains(r'\bno\b',na=False)
#split words in each string
copy.loc[nomore] = copy[nomore].str.split()
我不知道如何连接这些短语。我试过了
for i in copy.loc[nomore]:
for x in i:
if x == 'no':
print(x,x+1)
但这不起作用。它不能识别x == 'no'
,并给出x+1
错误。
我该怎么解决这个问题?
感谢您花时间阅读我的帖子,并以任何方式提供帮助。我真的很感激。
2条答案
按热度按时间nwlls2ji1#
下面是
str.findall()
和explode()
的一种方法输出:
enyaitl32#
您可以使用
str.extractall
获得所有“no”短语的列表,匹配no
,后跟一个可选的“more”和一个单词,然后将结果转换为列表:输出:
然后,您可以处理列表(例如:
print
)如您所愿。