2022/3/14 4.9 透视表和重塑dataframe In [ ]: import numpy as np import pandas as pd 在数据分析中,常常需要用到数据透视表和交叉表,下面介绍pandas.DataFrame.pivot_table数据透视表和pandas.DataFrame.crosstab交叉表的用 法和区别。 4.9.1 数据透视表 典型的数据格式是扁平的,只包含行和列,不方便总结信息。数据透视表(pivot table) 是一种类似GroupBy的操作方法,常见于Excel中。数据透视 表将每一列数据作为输入,输出将数据不断细分为多个维度累计信息的二维数据表。 数据透视表用来做数据透视,可以通过一个或多个键分组聚合DataFrame中的数据,通过aggfunc参数决定聚合类型,是groupby的高级功能。 透视表就是将指定原有DataFrame的列分别作为行索引和列索引,然后对指定的列应用聚集函数(默认情况下式mean函数)。 为什么要使用pivot_table? 灵活性高,可以随意定制你的分析计算要求 脉络清晰易于理解数据 操作性强,报表神器 在Python数据分析领域,`pandas`库提供了强大的数据处理能力,其中包括了数据透视表和交叉表的功能。数据透视表和交叉表是数据整理和分析的重要工具,尤其在处理大量扁平化数据时,能帮助我们快速提取关键信息并进行多维度的统计分析。 **数据透视表(pivot_table)** 数据透视表是一种高级的`groupby`操作,它允许用户通过一个或多个键对数据进行分组和聚合,以创建一个多维视角的数据摘要。在`pandas`中,`pivot_table`函数用于实现这一功能。它可以根据不同列的数据创建新的行和列索引,然后对特定列应用聚合函数,如平均值、总和、计数等,默认的聚合函数是平均值(`mean`)。 **pivot_table函数调用参数** - `data`: 需要进行透视操作的`DataFrame`对象。 - `values`: 指定需要进行聚合运算的列名,可以是单个列或列的列表。 - `index`: 作为新表格行索引的列名,同样可以是单个或列表形式。 - `columns`: 作为新表格列索引的列名,也是单个或列表形式。 - `aggfunc`: 指定的聚合函数,默认是`numpy.mean`,也可以是其他统计函数或多个函数的列表。 - `fill_value`: 用于填充缺失值的值。 - `margin`: 是否添加所有行/列的总计,默认为`False`。 - `dropna`: 是否忽略包含`NaN`的列,默认为`True`。 - `margins_name`: 当`margin=True`时,总计行/列的名称。 **示例应用** 1. **按性别统计不同籍贯的学号数目**: ```python pd.pivot_table(st, values='学号', index='性别', columns='籍贯', aggfunc=len) ``` 2. **按性别和籍贯统计学号数目**: ```python pd.pivot_table(st, values='学号', index=['性别', '籍贯'], aggfunc=len) ``` 3. **按性别统计不同籍贯的身高和体重最大值**: ```python pd.pivot_table(st, values=['身高', '体重'], index='性别', columns='籍贯', aggfunc=np.max) ``` 4. **按性别和籍贯统计体重和身高的最大最小值**: ```python pd.pivot_table(st, values=['身高', '体重'], index=['性别', '籍贯'], aggfunc=(np.max, np.min)) ``` 5. **按性别统计不同籍贯的年龄之和,并提供分项汇总统计**: ```python # 示例代码未给出,但可以通过添加aggfunc参数来实现,如 aggfunc={'年龄': 'sum'} ``` 使用`pivot_table`的优点在于其灵活性和强大的数据处理能力,可以根据需求定制分析,同时提供清晰的结构,方便理解和操作。对于复杂的数据分析任务,数据透视表能够有效地将原始数据转化为更便于理解的报表形式。
- 粉丝: 373
- 资源: 1万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java 代码覆盖率库.zip
- Java 代码和算法的存储库 也为该存储库加注星标 .zip
- 免安装Windows10/Windows11系统截图工具,无需安装第三方截图工具 双击直接使用截图即可 是一款免费可靠的截图小工具哦~
- Libero Soc v11.9的安装以及证书的获取(2021新版).zip
- BouncyCastle.Cryptography.dll
- 5.1 孤立奇点(JD).ppt
- 基于51单片机的智能交通灯控制系统的设计与实现源码+报告(高分项目)
- 什么是 SQL 注入.docx
- Windows 11上启用与禁用网络发现功能的操作指南
- Java Redis 客户端 GUI 工具.zip
- 1
- 2
- 3
前往页