如何使用AND运算符过滤包含特定字符串值的行

Mar*_*ars 4 python filtering pandas

我的问题是在这个链接中回答得很好的问题的扩展:

我在下面发布了答案,当字符串包含单词"ball"时,字符串被过滤掉:

In [3]: df[df['ids'].str.contains("ball")]
Out[3]:
     ids     vals
0  aball     1
1  bball     2
3  fball     4
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:如果我的数据中有长句,我想识别带有"ball"和"field"字样的字符串怎么办?因此当它们中只有一个出现时,它会丢弃包含单词"ball"或"field"的数据,但保留字符串中包含两个单词的数据.

fox*_*lue 5

df[df['ids'].str.contains("ball")]
Run Code Online (Sandbox Code Playgroud)

会成为:

df[df['ids'].str.contains("ball") & df['ids'].str.contains("field")]
Run Code Online (Sandbox Code Playgroud)

如果你是更整洁的代码:

contains_balls = df['ids'].str.contains("ball")
contains_fields = df['ids'].str.contains("field")

filtered_df = df[contains_balls & contains_fields]
Run Code Online (Sandbox Code Playgroud)