数据透视表|学习笔记

简介: 快速学习数据透视表

开发者学堂课程【Python 常用数据科学库:数据透视表】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/546/detail/7486


数据透视表

如何做数据透视表

(一)

image.png

这是一份消费数据,在每个月份都有一些花费,比如在交通上的花费,在娱乐上、在家庭上的花费,这里都有花费的指标。

要对这个数据做一个统计,只不过这次统计不单单是两个变量之间,而是要考虑三个变量之间,或者说要考虑一个像数据透视表之类的结构。

1、先写一下 example 的表格,要执行这样的操作,需要指定几个关键的属性,第一个叫做 index,index 是需要自己指定的,相当于以谁为键,现在要统计的是不同种类的花销,以它建写出来,还需要一个列,把列指定成月份,相当于是统计一个指标,然后按照什么方式去统计。最后有个 values,相当于你要统计这个指标的什么属性,这里只有一个属性,就是花费,把花费再挪过来

example_pivot = example.pivot(index ='Category', columns='Month',values='Amount'

example_pivot

然后打印一下,这样就得到一个表格,这就是数据透视表。这就完成了第一件事——先做出来一个最基本的数据透视表。

image.png

这里重要的一点是有个 index 值,有个列名,有一个数值,这个就是根据你想统计的指标,自己指定就可以了。

2、基于这个表还可以再去执行一些操作,比如说可以求它的和

example_pivot.sum(axit=1)

image.png

当指定成零的时候,example_pivot.sum(axit=1)

运行

image.png

就是不同的月份又进行了一个指定,也就是说统计了不同月份的花销分别是多少。统计完这些指标之后,现在按行按列都能统计,这就是最基本的一个数据透视表。

(二)

image.png

1、可以自己来指定一下统计指标,比如说想看不同的性别在不同的船舱等级,以及它的一个平均船票价格是什么样的,也就是男性在一等舱平均的花费,女性在一等舱平均话费以及在二等舱、三等舱。Index 值指定成性别 Sex,第二列写的是船舱的等级 Pclass,再把要统计的数值给指定出来,这里统计的是价格 Fare。

df.pivot_table (index ='Sex',columns='Pclass',values='Fare')

执行一下

image.png

就得到这个结果,性别有女性有男性,女性在一等舱、二等舱、三等舱平均的船票价格,男性在一等舱、二等舱、三等舱平均的船票价格,这个就是数据透视表。

刚刚是统计平均的价格,但是没有去指定平均,所以说这里是默认求平均值,但如果需求变了,要求男性和女性在123等舱当中最大的船费花销是多少,就需要再加上一个参数, 把它指定成 max

df.pivot_table(index ='Sex',columns='Pclass' values='Fare',aggfunc=' max')

运行看到结果

image.png

2、求人数,女性在一等舱的人数,男性在一等舱的人数  

指定 Count,相当于计数,这样就能得到人数分别是多少。除了这种方法,还有一个叫做 crosstab,

执行后的结果和上一个一样

pd.crosstab (index =df['Sex'],columns=df['Pclass']

如果要统计某一个键的一个指标,在某个列上它的分布情况,我们就可以用crosstable 来进行指定。

3、再来统计一些其他指标。看船舱的等级,在不同的性别上获救的情况,求它的均值

df['Underaged'] = df[' Age'] <= 18

df.pivot_table( index='Underaged’,columns= 'Sex',values='Survived',aggfunc='mean'),

执行一下得到这样一个表格

image.png

在这个表格当中统计了两个量。第一个就是对于不同的船舱等级,女性和男性平均获救几率是有多大的,结果显示一等舱里女性获救几率96%,男性36%,相对来说比较贵的船舱等级,获救几率会比较高,二等舱和三等舱也是一样。在年龄里还可以进行划分,有一类是一个未成年的,看一下未成年人当中,对于性别来说,获救与否的情况。

df.pivot_table(index = 'Pclass', columns= 'Sex',values=' Survived', aggfunc='mean')

然后执行一下就算出来了。可以对数据执行很多种操作,这几个值都是常用的,一个是以什么为建,然后看哪几个列,看列当中的某一个属性能按照什么样的方式去计算,这个就是数据透视表。用起来是很方便的,尤其是在做数据分析统计的时候。

相关文章
|
存储 负载均衡 监控
分布式定时任务,你了解多少?基于Quartz实现分布式定时任务解决方案!
定时任务系统在应用平台中的重要性不言而喻,特别是互联网电商、金融等行业更是离不开定时任务。在任务数量不多、执行频率不高时,单台服务器完全能够满足。但是随着业务逐渐增加,定时任务系统必须具备高可用和水平扩展的能力,单台服务器已经不能满足需求。因此需要把定时任务系统部署到集群中,实现分布式定时任务系统集群。
5955 1
分布式定时任务,你了解多少?基于Quartz实现分布式定时任务解决方案!
|
9月前
|
Java
课时18:Java运算符(逻辑运算符)
课时18介绍了Java中的逻辑运算符(与、或、非)。通过范例详细讲解了非操作的使用,展示了如何正确应用逻辑非(!)。接着分别探讨了与操作(& 和 &&)及或操作(| 和 ||),强调了短路运算符(&& 和 ||)在性能和安全性上的优势。课程通过具体代码示例演示了不同逻辑运算符的效果及其应用场景。
253 5
|
消息中间件 监控 数据挖掘
基于RabbitMQ与Apache Flink构建实时分析系统
【8月更文第28天】本文将介绍如何利用RabbitMQ作为数据源,结合Apache Flink进行实时数据分析。我们将构建一个简单的实时分析系统,该系统能够接收来自不同来源的数据,对数据进行实时处理,并将结果输出到另一个队列或存储系统中。
1107 2
|
人工智能 测试技术 人机交互
深入浅出智能工作流(Agentic Workflow)|技术干货
著名AI学者、斯坦福大学教授吴恩达提出AI Agent的四种设计方式后,Agentic Workflow(智能体工作流)在全球范围内迅速走红,多个行业纷纷实践其应用,并推动了新的Agentic AI探索热潮。吴恩达总结了Agent设计的四种模式:自我反思、工具调用、规划设计及多智能体协作。前两者较普及,后两者则为智能体使用模式从单一大模型向多智能体协同配合完成业务流程的转变奠定了基础。
6932 3
|
前端开发 开发者
【专栏】BEM(Block-Element-Modifier)是一种前端命名规范和架构方法,旨在创建清晰、可维护的代码结构。
【4月更文挑战第29天】BEM(Block-Element-Modifier)是一种前端命名规范和架构方法,旨在创建清晰、可维护的代码结构。它包括Block(独立功能单元)、Element(Block的子元素)和Modifier(表示状态或变体)。BEM的特点包括命名一致性、模块化设计、清晰结构和可复用性,适用于代码组织、样式管理、组件化开发和团队协作。虽然命名较长和学习成本是其局限性,但BEM在提升代码质量和效率方面具有显著优势,是前端开发的重要工具。
406 0
|
机器学习/深度学习 分布式计算 供应链
大数据在电商领域的应用有哪些?请举例说明。
大数据在电商领域的应用有哪些?请举例说明。
695 0
|
机器学习/深度学习 算法 搜索推荐
Stacking:解决机器学习进行多模型组合的实用工具
在机器学习领域,算法的选择和参数的调整一直是让人头痛的难题。虽然有很多算法可以使用,但没有一种算法是万能的。随着技术的不断发展,出现了一些新的技术可以在算法选择和调整参数方面提供一些帮助。其中最流行的技术之一是Stacking。 Stacking是一种用于增强机器学习模型性能的技术。该技术通过结合不同算法的预测结果来生成最终的预测结果。这种方法能够帮助解决许多机器学习问题,特别是当单一算法不足以解决问题时。
|
存储 自然语言处理 关系型数据库
|
Linux 网络安全 数据安全/隐私保护