按子字符串列表过滤 DataFrame

leo*_*yin 2 pandas

基于这个答案,有没有办法通过子字符串列表过滤 Pandas 数据帧?

假设我想查找 df['menu_item'] 包含fresh或的所有行spaghetti

没有这样的东西:

df[df['menu_item'].str.contains('fresh') | (df['menu_item'].str.contains('spaghetti')]

roo*_*oot 5

您使用的方法str.contains接受正则表达式,因此将正则表达式用作|or:

df[df['menu_item'].str.contains('fresh|spaghetti')]
Run Code Online (Sandbox Code Playgroud)

输入示例:

          menu_item
0        fresh fish
1      fresher fish
2           lasagna
3     spaghetti o's
4  something edible
Run Code Online (Sandbox Code Playgroud)

示例输出:

       menu_item
0     fresh fish
1   fresher fish
3  spaghetti o's
Run Code Online (Sandbox Code Playgroud)