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
我想选择最后一列(标签)为normal或Botnet的行。 如果Label包含normal / Botnet,我必须检查条件(这里正常-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。帮助赞赏。等待。非常感谢提前:data1是所有数据的数据框,[~data1.iloc [:, - 1] .str用于选择最后一列。
datagrouped = data1.loc[~data1.iloc[:,-1].str == 'Botnet']
答案 0 :(得分:1)
将.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