如果pandas数据框中的行包含列表中的值,如何删除这些行?

时间:2017-11-24 02:37:22

标签: python list pandas

我有一个像这样的pandas数据框:

    Beer            Rating
0   Heineken        Good
1   Budweiser       Bad
2   Coors Light     Bad

和一个如下所示的列表:

bad_beers = ["Light", "0.0%"]

如何从列表中删除包含给定字符串的pandas数据框中的每一行?

所需的输出应如下所示:

    Beer       Rating
0   Heineken   Good
1   Budweiser  Bad

1 个答案:

答案 0 :(得分:2)

我们可以使用str.contains

df[~df.Beer.str.contains('Light')]
Out[364]: 
        Beer Rating
0   Heineken   Good
1  Budweiser    Bad

如果列表包含更多项目使用|

df[~df.Beer.str.contains('Light|Heineken')]
Out[365]: 
        Beer Rating
1  Budweiser    Bad