熊猫在句子中的任何地方

时间:2015-09-12 21:58:32

标签: python pandas

我有一个由字符串句子组成的标准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中包含“世界”一词。

2 个答案:

答案 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