如何 select 数据框最后一列包含特定值的行

How to select the rows where last column of dataframe contains specific value

Duration Protocol Direction Label
12        tcp     bi        normal-V45
2         udp     one       Botnet-45
2         icmp    bi        Botnet-68
3         tcp     one       normal-V73
5         udp     bi        Background-tcp
3         icmp    one       Background

我想 select 具有最后一列(标签)的行是正常的还是僵尸网络。 如果 Label 包含 normal/Botnet ,我必须检查条件(这里 normal-V45 和 normal-V73 被认为是正常的,类似于僵尸网络的概念)。所以输出应该是:

Duration Protocol Direction Label
12        tcp     bi        normal-V45
2         udp     one       Botnet-45
2         icmp    bi        Botnet-68
3         tcp     one       normal-V73

我在 pandas 中使用了以下内容,但所有数据都以 csv 格式提供。求助appreciated.Waiting。非常感谢:data1 是所有数据所在的数据框,[~data1.iloc[:,-1].str 用于 select 最后一列。

datagrouped = data1.loc[~data1.iloc[:,-1].str == 'Botnet']

.str.contans 与正则表达式和布尔索引一起使用:

df[df.Label.str.contains(r'normal|Botnet')]

输出:

   Duration Protocol Direction       Label
0        12      tcp        bi  normal-V45
1         2      udp       one   Botnet-45
2         2     icmp        bi   Botnet-68
3         3      tcp       one  normal-V73