【发布时间】:2021-01-04 11:47:56
【问题描述】:
我有一个如下所示的数据框:
source_ip destination_ip malware_tag ransomware_tag brutefore_tag source_bytes destination_bytes label
ip_1 ip_2 True True False 10 20 0
ip_1 ip_2 True False False 20 60 0
ip_1 ip_2 True False False 30 100 0
ip_1 ip_2 True True False 40 300 0
ip_3 ip_4 False False True 5 20 1
ip_3 ip_4 False False True 500 9 1
ip_3 ip_4 False True True 200 15 1
我首先要为每个“标签”创建一个名为“攻击类型”的新列,该列是基于三个布尔标签列创建的;通过仅考虑最常见/最频繁的攻击标志。所以我希望生成的数据框如下所示:
source_ip destination_ip source_bytes destination_bytes label attack_type
ip_1 ip_2 10 20 0 malware
ip_1 ip_2 20 60 0 malware
ip_1 ip_2 30 100 0 malware
ip_1 ip_2 40 300 0 malware
ip_3 ip_4 5 20 1 bruteforre
ip_3 ip_4 500 9 1 bruteforce
ip_3 ip_4 200 15 1 bruteforce
第二次按源和目标 IP 汇总(源和目标字节的总和)生成的数据帧。所以最终的数据框应该是这样的:
source_ip destination_ip total_source_bytes total_destination_bytes attack_type
ip_1 ip_2 100 480 malware
ip_3 ip_4 705 44 bruteforce
我将不胜感激任何帮助来实现这一点。谢谢。
【问题讨论】:
标签: pandas dataframe group-by sum frequency