我有一个由字符串句子组成的标准pandas DataFrame(如下所示),我想在其“body”中的任何位置显示“world”一词。 df.isin(['world'])
无效,因为它只与精确标签匹配。如果“世界”这个词出现在“正文”的文本中,我想返回True
。
body
0 'Hello world hi hi'
1 'My name is David, hello'
2 ...
我尝试的代码是:
df.isin(['world'])
产生:
body
0 False
1 False
2 ...
我想要制作的内容是:
body
0 True
1 False
2 ...
因为行0
中包含“世界”一词。
答案 0 :(得分:1)
您可以使用str.contains,如下图所示。
# Test data
df = pd.DataFrame({'body': ['Hello world hi hi', 'My name is David, hello']})
df['body'].str.contains('world')
# Result
0 True
1 False
答案 1 :(得分:1)
你可以str.contains
赞成:
# Test data
df = pd.DataFrame({'body': ['Hello world hi hi', 'My name is David, hello']})
df['body'].str.contains('world')
此外,如果您想要多次搜索字符串,可以通过以下方式进行:
mylist = ['Hello', 'world']
In [11]: pattern = '|'.join(mylist)
In [12]: pattern
Out[12]: 'Hello|world'
In [13]: df['body'].str.contains(pattern)
Out[13]:
0 True
1 False
Name: a, dtype: bool