我有一个包含unqiue IP的数据帧,以及一个基于扫描结果分类器的严重等级,如下所示:
我的目标:对于每个唯一的IP,如何返回每个严重级别的计数?目标是最终创建一个表,列出每个严重级别的每个IP总数。
我已经知道如何获得Totals专栏的点击量。这很简单:
df_IP_counts = df['IP'].value_counts()
or
df_Severity_counts =df.Severity.value_counts()
但是如何将每个IP的CRITICAL,HIGH,MODERATE和LOW分别计算在内,这给我带来了麻烦。
谢谢。
答案 0 :(得分:4)
您可以致电groupby
+ count
-
result = df.groupby(['IP', 'Severity']).Severity.count().unstack()
要获取总计数,您可以在值上调用sum
并使用assign
/ concat
/ inplace assignment将其添加到result
数据框 -
result['Total'] = result.values.sum(axis=1)