python--pandas分组聚合

python--pandas分组聚合,第1张

groupby 方法是pandas中的分组方法,对数据框采用 groupby 方法后,返回的是 DataFrameGroupBy 对象,一般分组 *** 作后会进行聚合 *** 作。

对数据框按 A 列进行分组,产生分组数据框。分组数据框是可迭代对象,可以进行循环遍历,可以看出在循环中,每个元素的类型是元组,

元组的第一个元素是分组值,第二个元素是对应的分组数据框。

可以对分组后的数据框直接使用聚合方法 agg ,对分组数据框的每一列计算统计函数值。

可以根据数据框外的序列数据对数据框进行分组,需要注意 序列长度需要与数据框行数相同

可以根据数据框的多列对数据框进行分组。

根据 A , B 列进行分组,然后求和。

可以根据索引对数据框进行分组,需要设置 level 参数。

数据框只有一层索引,设置参数 level=0 。

当数据框索引有多层时,也可以根据需求设置 level 参数,完成分组聚合。

设置 level 参数,如需要根据第一层索引,即 id1 进行分组,可以设置 level=0 或 level='id1' 完成分组聚合。

分组后一般会进行聚合 *** 作,用 agg 方法进行聚合。

对分组后数据框使用单个函数进行聚合,单个聚合函数会对每列进行计算,然后合并返回。聚合函数以字符串的形式传入。

可以对分组后的数据指定列进行分组聚合。需要注意 子列需要用[]包裹

聚合函数也可以传入自定义的匿名函数。

聚合函数可以是多个函数。聚合时,多个聚合函数会对每列进行计算,然后合并返回。聚合函数以列表的形式传入。

聚合返回后的数据列名有两层索引,第一层是聚合的列名,第二层是使用的聚合函数名。如果需要对返回的聚合函数名重命名,

需要在传参时,传入元组,第一个元素为聚合函数名,第二个元素为聚合函数。

同样,也可以传入匿名函数。

如果需要对不同的列进行不同的聚合计算,则需要传入字典的形式。

可以重命名聚合后的列名,注意 只能对一列传入一个聚合函数时有效

python中groupby函数主要的作用是进行数据的分组以及分组后地组内运算!

对于数据的分组和分组运算主要是指groupby函数的应用,具体函数的规则如下:

df[](指输出数据的结果属性名称).groupby([df[属性],df[属性])(指分类的属性,数据的限定语,可以有多个).mean()(对于数据的计算方式——函数名称)

另外,我们也可以过滤掉和忽略掉你不想要的组,而是返回一个类似索引对象。在这个对象中,我们分组时需要设置一个过滤条件,那么没有通过的分组的元素被NaN 填充,这样分组后被NaN 填充的数据就可以忽略了。

一、安全洋葱控制台(SOC)

一旦你运行了so-allow和允许你的IP地址,你就可以用你的web浏览器连接到安全洋葱控制台(SOC)。我们推荐chromium 或基于chromium 的浏览器,如谷歌Chrome。其他浏览器可能也能工作,但基于chrome的浏览器提供了最好的兼容性。

根据您在安装程序中选择的选项,连接到您的安全洋葱安装的IP地址或主机名。然后使用您在安装程序中指定的电子邮件地址和密码登录。

登录后,你会在左侧看到一些分析工具的链接,比如Alerts、Hunt、PCAP、Kibana、CyberChef、Playbook、TheHive和ATT&CK Navigator。虽然警报、Hunt和PCAP是SOC本身的原生工具,但是其余的工具都是外部的,并且会产生单独的浏览器标签。

SOC使您能够访问各种工具,它们都可以很好地相互补充。例如,这里有一个潜在的工作流:

(1)检查Grafana,确保你的系统是健康的。

(2)进入警报页面并查看未确认的警报。

(3)一旦发现了需要调查的警告,可能需要扩展搜索并查找与源和目标IP地址相关的其他日志,因此pivot可以搜索更多信息。如果这些附加日志中的任何一个看起来很有趣,那么您可能希望转向PCAP,以查看该流的完整包捕获。

(4)向Thehive发送警报,并记录上一步发现的任何IOC指标。

(5)去fleet和执行那些IOCs跨所有osquery端点更广泛的搜索。

(6)使用CyberChef进一步分析和解码其他主机工件。

(7)开发一个在playbook,将自动向前告警IOC和更新您的覆盖率ATT&CK导航器。

(8)最后,返回thehive和文件的整个调查和结束案件。

二、告警

安全洋葱控制台(SOC)让您访问我们新的告警界面。这个界面给你一个告警的概述,安全洋葱正在生成,并允许你快速深入细节,pivot到hunt或PCAP,并逐步升级警报到thehive。

2.1 切换toggle

页面顶部必须有确认和升级切换:

(1)启用确认切换将只显示之前已被分析师确认的警报。

(2)启用升级切换将只显示之前由分析师升级到thehive的警报。

2.2查询栏

查询栏默认为按名称分组,模块按rule.name和event.module对警报进行分组。如果您想将您当前的告警查询发送到Hunt,您可以点击查询栏右边的十字瞄准图标。

在查询栏下,您会注意到彩色的气泡,它们表示查询的各个组件和要分组的字段。如果您想删除部分查询,您可以单击相应的气泡删除它并运行新的搜索。

您可以单击下拉框选择其他查询,这些查询将按其他字段分组。

2.3时间选择器

默认情况下,Alerts搜索最近24小时。如果您想要搜索一个不同的时间段,您可以在屏幕的右上角更改它。

2.4数据表

页面的其余部分是一个数据表,从分组视图开始,可以切换到详细视图。这两种视图有一些共同的功能:

(1)单击表标头可以按升序或降序排序。

(2)单击bell图标确认一个警报。然后,通过选择页面顶部的确认切换按钮,就可以看到该警报。在确认视图中,单击铃铛图标将删除确认。

(3)单击蓝色感叹号图标将警报升级到hive并创建一个case。这个案例可以在蜂巢界面中看到。如果您需要在警告页面中找到原来的升级警报,您可以启用升级切换(它也将自动启用确认切换)。

(4)单击表中的一个值将显示该值的 *** 作菜单。左边的正负放大镜图标允许您(分别)在查询中包括或排除这些值。如果存在,向下箭头图标允许您钻取该值(下一节将详细介绍该值)。groupby图标允许将特定字段作为groupby添加到查询中。在狩猎中,十字准星图标开始了新的价值搜索。动作菜单右侧末端的G和VT(分别)查找谷歌和VirusTotal上的值。

(5)您可以在右下角调整每页的行设置,并使用左右箭头图标在表格中分页。

分组的视图

默认情况下,警报是根据查询栏中选择的任何条件进行分组的。单击字段值,然后单击向下箭头图标,允许您向下钻取该值,该值将切换到详细视图。

详细视图

如果单击分组视图中的一个值,然后单击快速工具条上的向下箭头图标,它将向下钻取到详细视图。这将显示所有搜索结果,并允许您根据需要钻取单个搜索结果。单击表标头可以按升序或降序排序。从每一行的左边开始,有一个箭头,它将展开结果以显示其所有字段。箭头的右边是时间戳字段。接下来,将显示几个标准字段:rule.name、event.severity_label、source.ip、source.port、destination.ip和destination.port。根据您正在查看的数据类型,可能还会有一些其他特定于数据的字段。

当您单击向下箭头以展开Events表中的一行时,它将显示该事件的所有单独字段。字段名称显示在左侧,字段值显示在右侧。在查看字段名称时,左侧有一个图标,它将把该字段添加到查询的groupby部分。您可以单击右边的值d出动作菜单,以优化搜索或转向其他页面。

三、狩猎

安全洋葱控制台(SOC)让您访问我们的新狩猎接口。该界面允许您在Elasticsearch中搜索所有数据,并对叠加、下钻、数据扩展和数据缩减进行了高度优化。

3.1自动狩猎

页面的顶部有一个自动搜索的开关,默认是启用的。启用后,当您更改过滤器、分组或日期范围时,Hunt将自动提交您的查询。

3.2查询栏

最简单的入门方法是单击query下拉框并选择预定义的查询之一。这些预定义的查询涵盖了您在安全洋葱部署中可能看到的大多数主要数据类型:来自Suricata的NIDS警报、来自Wazuh的HIDS警报、来自Zeek或Suricata的协议元数据日志、端点日志和防火墙日志。下拉列表中的每个条目都将显示实际的查询,然后是查询功能的描述。

3.3时间选择器

默认情况下,Hunt搜索最近24小时。如果您想要搜索一个不同的时间段,您可以在屏幕的右上角更改它。您可以使用默认的相对时间或单击时钟图标更改为绝对时间。

3.4可视化

输出的第一部分包含“最多发生可视化”、“时间轴可视化”和“最少发生可视化”。柱状图是可单击的,因此您可以单击一个值来更新您的搜索条件。聚合默认为10个值,所以最多出现在前10个值,最少出现在后10个值(长尾)。聚合值的数量由Group Metrics部分中的获取限制设置控制。

3.5组指标

输出的中间部分是Group Metrics部分,它是一个数据表,允许您堆叠(聚合)任意字段。组指标由搜索栏中的groupby参数控制。单击表标头可以按升序或降序排序。

单击Group Metrics表中的一个值,将d出针对该值的 *** 作菜单。左边的正负放大镜图标允许您(分别)在查询中包括或排除这些值。第三个放大镜仅对值本身启动一个新的查询。动作菜单右侧末端的G和VT(分别)查找谷歌和VirusTotal上的值。

Group Metrics表的默认取值限制是10。如果需要查看前10个以上的数据,可以增加获取限制,然后使用左右箭头图标对输出进行分页,或者增加每页的行设置。

3.6事件

输出的第三部分也是最后一部分是一个数据表,其中包含所有搜索结果,并允许您根据需要钻取单个搜索结果。单击表标头可以按升序或降序排序。从每一行的左边开始,有一个箭头,它将展开结果以显示其所有字段。箭头的右边是时间戳字段。接下来,将显示几个标准字段:source.ip、source.port、destination.ip、destination.port、log.id.uid(Zeek唯一标识符),network.community_id(社区ID),和event.dataset。根据您正在查看的数据类型,可能还会有一些其他特定于数据的字段。

单击Events表中的一个值将显示该值的 *** 作菜单。左边的正负放大镜图标允许您(分别)在查询中包括或排除这些值。第三个放大镜仅对值本身启动一个新的查询。第四个图标将带您进入流的pcap。第五个图标(bell)为该事件创建一个警报。动作菜单右侧末端的G和VT(分别)查找谷歌和VirusTotal上的值。

Events表的默认取值限制是100。如果需要查看超过100个事件,可以增加获取限制,然后使用左右箭头图标对输出进行分页,或者增加每页的行设置。

当您单击向下箭头以展开Events表中的一行时,它将显示该事件的所有单独字段。字段名称显示在左侧,字段值显示在右侧。在查看字段名称时,左侧有一个图标,它将把该字段添加到查询的groupby部分。您可以单击右边的值d出动作菜单,以优化搜索或转向其他页面。

3.7统计数据

页面的左下角显示了关于当前查询的统计信息,包括后端数据获取的速度和总往返时间。

3.8OQL

洋葱查询语言(OQL)以标准的Lucene查询语法开始,然后允许你添加可选的片段来控制Hunt对查询结果做什么。groupby段告诉Hunt按(聚合)特定字段分组。因此,例如,如果希望按目的地IP地址进行分组,可以将| groupby destination- IP添加到搜索中(假设它还没有groupby语句)。groupby段支持多个聚合,因此您可以添加需要分组的更多字段,并用空格分隔这些字段。例如,要按目的地IP地址和目的地端口进行分组,可以使用| groupby destination.IP destinaion.port。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11176355.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存