Pandas 透视表概述 数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等。所进行的计算与数据跟数据透视表中的排列有关。...之所以称为数据透视表,是因为可以动态地改变它们的版面布置,以便按照不同方式分析数据,也可以重新安排行号、列标和页字段。每一次改变版面布置时,数据透视表会立即按照新的布置重新计算数据。...第一个月数据是之前所有会员数量的累积(数据质量问题) 由于会员等级跟消费金额挂钩,所以会员等级分布分析可以说明会员的质量 通过groupby实现,注册年月,会员等级,按这两个字段分组,对任意字段计数... 分组之后得到的是multiIndex类型的索引,将multiIndex索引变成普通索引 custom_info.groupby(['注册年月','会员等级'])['会员卡号'].count().reset_index...: 增量等级占比分析,查看增量会员的整体情况 整体等级分布 报表可视化 从业务角度,将会员数据拆分成线上和线下,比较每月线上线下会员的运营情况 将“会员来源”字段进行拆解,统计线上线下会员增量
df2.reindex(columns=[('富强','数学'),('李海','英语'),('王亮','数学'),('富强','语文')]) 二、数据透视表 数据透视表相当于在行和列两个维度上进行分组...,它可以根据一个或多个键对数据进行聚合,并根据行和列上的分组键将数据分配到各个矩形区域中。...数据透视表的效果可以通过groupby来实现,但有时候直接使用pivot_table方法建立数据透视表可能更方便些,而且额外提供了汇总功能。...第1个参数是data参数,提供了绘制数据透视表的数据来源,可以是整个 DataFrame,也可以是 DataFrame 的子集;index和columns参数指定了行分组键和列分组键;values指定想要聚合的数据字段名...(['年份','课程']).agg({'富强':'max','李海':sum}).unstack() 注意:当来源的数据和聚合的数据不同时,需要使用values参数,下面两个语句等价。
Pandas 给 NumPy 数组带来的两个关键特性是: 异质类型 —— 每一列都允许有自己的类型 索引 —— 提高指定列的查询速度 事实证明,这些功能足以使Pandas成为Excel和数据库的强大竞争者...MultiIndex 我们将拆分成四个部分,依次呈现~建议关注和星标@公众号:数据STUDIO,精彩内容等你来~ Part 4...., src=-2, dst=-1) 交换两个level(默认为最里面的两个级别),将inplace和sort参数添加到df.swaplevel中 pdi.move_level(obj, src, dst...dict或者一个函数: rename 至于重命名level,它们的名字被存储在.names字段中。..."在这里")可以找到一个用巨大的MultiIndex处理现实生活中的销售数据集的好例子。
在分组时,不同的列有时应该被区别对待。例如,对数量求和是完全可以的,但对价格求和则没有意义。...一个从不同角度看数据的有用工具--通常与分组一起使用--是透视表。...作为一个不那么抽象的例子,请考虑以下表格中的销售数据。两个客户购买了指定数量的两种产品。最初,这个数据是长格式的。...至于反向操作,你可以使用stack。它将索引和列合并到MultiIndex中: eset_index 如果你想只stack某些列,你可以使用melt: 请注意,熔体以不同的方式排列结果的行。...为了方便,pivot_table可以计算小计和大计: 一旦创建,数据透视表就变成了一个普通的DataFrame,所以它可以使用前面描述的标准方法进行查询: 当与MultiIndex一起使用时,数据透视表特别方便
前言 Pandas中的多级索引(MultiIndex)是指在一个DataFrame或Series中,使用多个索引级别来组织数据。多级索引可用于存储高维数据,如时间序列数据或具有多个分类变量的数据。...在Pandas中,MultiIndex可以通过以下方式创建: 使用元组列表创建:通过传递每个级别上的唯一值列表的元组列表来创建MultiIndex。...1.MultiIndex的概念 能使我们快速便捷地处理数据的函数和方法。...至于重命名级别,它们的名称存储在.names字段中。...12.MultiIndex算术 当使用多索引数据框时,与普通数据框适用相同的规则(见上文)。但是处理细胞的一个子集有它自己的一些特性。
在本章中,我们将详细讨论以太网链路层协议,两个串行接口链路层协议( S L I P和P P P),以及大多数实现都包含的环回( l o o p b a c k)驱动程序。...如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认条件下必须是 RFC 894分组。最常使用的封装格式是 RFC 894定义的格式。...在 8 0 2标准定义的帧格式中,长度字段是指 ? 它后续数据的字节长度,但不包括 C R C检验码。以太网的类型字段定义了后续数据的类型。...在以太网帧格式中,类型字段之后就是数据;而在 8 0 2帧格式中,跟随在后面的是 3字节的802.2 LLC和5字节的802.2 SNAP。...C R C字段用于帧内后续字节差错的循环冗余码检验(检验和)(它也被称为F C S或帧检验序列)。 8 0 2 . 3标准定义的帧和以太网的帧都有最小长度要求。
参考:TCP-IP详解卷1:协议 链路层的三个主要目的: (1)为IP模块发送和接收IP数据报 (2)为ARP模块发送ARP请求和接收ARP应答 (3)为RARP发送RARP请求和接收RARP应答...ARP协议盒RARP协议对32bit的IP地址和48bit的硬件地址进行映射。 之后的两个字节在两种帧格式中互不相同,在802标准定义的帧格式中,长度字段是指它后续的字节长度,但不包括CRC检验码。...以太网的类型字段定义了后续数据的类型。以太网的类型字段定义了后续数据的类型。在802标准定义的帧格式中,类型字段由后续的子网接入协议的首部给很粗。...以太网帧格式中,类型字段之后就是数据,在802格式中,跟随在其后的是3字节的802.2 LLC和5字节的802.2 SNAP。...为这些有点付出的带价是在每一帧的首部增加三个字节,当建立链路时要发送几帧协商数据,以及更为复杂的实现 环回接口 大多数的产品都支持环回接口,以允许运行在同一台主机上的客户程序和服务器程度通过TCP/IP
6种方式创建多层索引MultiIndex pd.MultiIndex即具有多个层次的索引。通过多层次索引,我们就可以操作整个索引组的数据。...pd.MultiIndex.from_frame:根据现有的数据框来直接生成 groupby():通过数据分组统计得到 pivot_table():生成透视表的方式来得到 pd.MultiIndex.from_arrays...('zhangfei', 'female', 27)], ) 列表和元组是可以混合使用的: 最外层是列表 里面全部是元组 In [8]: array6 = [("xiaoming"...在Python中,我们使用 isinstance()函数 判断python对象是否可迭代: # 导入 collections 模块的 Iterable 对比对象 from collections import..."age":[23,39,34], "sex":["male","male","female"]}) df 直接生成了多层索引,名字就是现有数据框的列字段
到目前为止,我们主要关注一维和二维数据,分别存储在 Pandas Series和DataFrame对象中。通常,超出此范围并存储更高维度的数据(即由多于一个或两个键索引的数据)是有用的。...在本节中,我们将探索MultiIndex对象的直接创建,在对多重索引数据执行索引,切片和计算统计数据时的注意事项,以及在数据的简单和分层索引表示之间进行转换的有用例程。...具体而言,我们将考虑数据序列,其中每个点都有一个字符和数字键。 不好的方式 假设你想跟踪两个不同年份的州的数据。...作为额外维度的MultiIndex 你可能会注意到其他内容:我们可以使用带有索引和列标签的简单DataFrame,来轻松存储相同的数据。事实上,Pandas 的构建具有这种等价关系。...这个语法实际上是GroupBy函数的简写,我们将在“聚合和分组”中讨论。虽然这是一个玩具示例,但许多真实世界的数据集具有相似的层次结构。
:Series、DataFrame和MultiIndex(老版本中叫Panel )。...为了更方便地操作Series对象中的索引和数据,Series中提供了两个属性index和values: index: color_count = pd.Series({'red':100, 'blue...注:最常用的HDF5和CSV文件 接下来重点看一下,应用CSV方式、HDF方式和json方式实现文件的读取和存储。...把下图中左边的表格转化为使用右边形式进行表示: 下面看看pandas中是怎么实现的: pandas.get_dummies(data, prefix=None) data:array-like, Series...'], index='week') 结果: 10、高级处理-分组与聚合 分组与聚合通常是分析数据的一种方式,通常与一些统计函数一起使用,查看数据的分组情况 10.1 什么分组与聚合 下图展示了分组与聚合的概念
在数据分析中,常常有这样的场景,需要对不同类别的数据,分别进行处理,然后再将处理之后的内容合并,作为结果输出。对于这样的场景,就需要借助灵活的groupby功能来处理。...,将分组处理的结果合并起来,形成一个新的数据 图示如下 ?...上述例子在python中的实现过程如下 >>> import numpy as np >>> import pandas as pd >>> df = pd.DataFrame({'x':['a','a...分组处理 分组处理就是对每个分组进行相同的操作,groupby的返回对象并不是一个DataFrame, 所以无法直接使用DataFrame的一些操作函数。...汇总数据 transform方法返回一个和输入的原始数据相同尺寸的数据框,常用于在原始数据框的基础上增加新的一列分组统计数据,用法如下 >>> df = pd.DataFrame({'x':['a','
紧跟着帧类型字段的前四个字段指定了最后四个字段的类型和长度)。 ? 以太网报头中的前两个字段是以太网的源地址和目的地址。目的地址为全 1的特殊地址是广播地址。...电缆上的所有以太网接口都要接收广播的数据帧。 两个字节长的以太网帧类型表示后面数据的类型。对于 A R P请求或应答来说,该字段的值为0 x 0 8 0 6。...形容词h a r d w a r e (硬件)和p r o t o c o l (协议)用来描述A R P分组中的各个字段。...这个字段必需的,因为 A R P请求和A R P应答的帧类型字段值是相同的。...当这些表项再次使用时,这些实现一般都把超时值重新设为 2 0分钟。
ARP的作用 要了解ARP的作用,首先要分清两个“地址”: (1)TCP/IP的32bit IP地址。仅知道主机的IP地址不能让内核发送数据帧给主机。 ...字段2是发送ARP请求的以太网地址。 字段3以太网帧类型表示的是后面的数据类型,ARP请求和ARP应答这个值为0x0806。 ...下面是抓取的ARP数据包,可以对照上面的说明进行理解。 图中红框圈起来的是一对ARP请求和ARP应答。 下面两张图分别是ARP请求和相应的ARP应答的分组格式截图。 ...ARP请求分组中,字段11目的MAC地址未知,用全0进行填充。 ARP应答分组中,将ARP请求中的源和目的地址进行交换,此外,变化的还有字段8 Opcode。其余字段内容不会发生变化。...分组中的地址字段和其他相同的字段无法作为区分依据,这时Opcode字段就发挥了作用,根据Opcode的值可以确定是请求还是应答,是ARP还是RARP。
Series、DataFrame和MultiIndex(老版本中叫Panel )。...为了更方便地操作Series对象中的索引和数据,Series中提供了两个属性index和values: index: color_count = pd.Series({'red':100, 'blue...注:最常用的HDF5和CSV文件 接下来重点看一下,应用CSV方式、HDF方式和json方式实现文件的读取和存储。...把下图中左边的表格转化为使用右边形式进行表示: 下面看看pandas中是怎么实现的: pandas.get_dummies(data, prefix=None) data:array-like, Series...'], index='week') 结果: 10、高级处理-分组与聚合 分组与聚合通常是分析数据的一种方式,通常与一些统计函数一起使用,查看数据的分组情况 10.1 什么分组与聚合 下图展示了分组与聚合的概念
分割,就是按照一些标准进行数据的拆分 应用,给分好的组,应用一些函数上去 组合,分组的数据,捣鼓捣鼓,弄成一个新的数据结构,方便后面应用 Over 这就是groupby的核心 分割,或者叫分组(拆分)步骤...,是最简单的, 看好数据,写代码就可以了 (说的好像很容易似的) 使用最多的,对我们来说 是想要对数据进行一些基本的应用 也就是分组之后,我们要计算 官方文档里面介绍groupby要实现的效果 就是想模拟...dataframe对象来说 你可以直接用'A'或者'B'中的一个进行分组 当然也可以直接用['A','B']进行分组 这个要看你实际的需求了啊 分组之后,我们能干点啥?...2, 4, 6, 7], dtype='int64')} 当然学习吗,你可以使用help和dir把帮助文档弹出来 然后所有的属性和方法都清晰可见了 print(dir(grouped)) print(...,并且求和 比如,我要计算first列下面的a的和,b的和,c的和,d的和 我们可以通过level参数控制 # 这两个一个意思 print(s.groupby(level=0)) print(s.groupby
很多人把 groupby 理解成单纯的求和、计数这类操作,比如说算算总收入、数数用户量,然后就没了。...实际上它的应用场景要广得多:计算组内特征、数据标准化、构造滚动指标、合并不同维度的统计结果,甚至处理一些复杂的嵌套数据结构。...agg 处理多指标汇总,transform 生成组级特征,MultiIndex 分组配合 pivot_table 可以快速构建复杂的数据视图。...熟练掌握这些用法之后,很多数据处理任务的代码量能减少不少。...多指标统计用 agg,命名聚合让代码更清晰,组内特征计算靠 transform,业务逻辑封装成自定义函数,多维度报表用 MultiIndex 和透视表组合。----
多个进程可以同时监视一个接口,每个进程指明了一个自己的过滤器。图 A - 1显示了t c p d u m p的两个实例进程和一个 R A R P守护进程(5 . 4节)监视同样的以太网接口。...因为网络的数据传输率可以很容易地超过 C P U的处理能力,而且一个用户进程从内核中只读小块数据的代价昂贵,因此, B P F试图将多个帧装载进一个读缓存,只有缓存满了或者用户指明的超时到期才将读缓存保存的帧返回...在内核中过滤,而不在用户进程中,减少了必须从内核传递到用户进程的数据量。R A R P守护进程总是使用绑定在程序里的、同样的过滤程序。...= 0 第一个只打印源端口和目的端口为 2 5的T C P报文段。第二个只打印不是回送请求和回送应答的I C M P报文(也就是非 p i n g的分组)。...这个表达式指明了 I C M P报文的第一个字节,图6 - 2中的t y p e字段,不等于8或0,即图6 - 3中的回送请求和回送应答。正像你所看到的,设计过滤器需要有底层分组结构的知识。
、交换机必须实现数据链路层;网络中的主机、路由器必须实现数据链路层。...: 熟知端口号: 3.UDP:首部格式,检验和 首部格式: 检验和: 发送端: 先设置检验和字段为 0 每两个字节为一组,进位累加求和,多出的加到最后一位 把求和结果求反,求反即转换成 2 进制后...,知道网络层传递给他下一个分组,然后,确认信息被附在往外发送的数据帧中(使用帧头中的 ack 域)。...IPv4 校验检验和 先设置 “首部检验和” 字段为 0 将首部每 2 个字节当做一个数 将所有数相加求和,进位累加 “3029F=02A2” 对求和结果求反得:FD5D 则发送方发送的 IP 分组首部的检验和为...: 取消了首部长度字段,因为它的首部长度是固定的 取消了服务类型字段,因为优先级和流标号字段实现了服务类型字段的功能 取消了总长度字段,改用有效载荷长度字段 取消了标识】标志、和片偏移字段,因为这些功能已包含在分片扩展首部中