使用 Python Pandas 创建包含多列的数据透视表

PythonPandas 让数据处理、表示和分析变得更加简单。我们可以使用 Pandas 数据透视表 来创建类似电子表格的数据透视表,其结果以 DataFrame 的形式呈现。在生成的结果 DataFrame 中,数据透视表的层级将作为 MultiIndex 对象(分层索引)存储在行和列上。

在 pandas 中,数据透视表是一种对 DataFrame 中的数据进行汇总和聚合的方法,特别是在处理多个维度或分类变量时非常有用。它允许我们重塑和转换数据,从而更容易进行分析并获得洞察。在数据透视表中,我们可以指定原始 DataFrame 中的哪些列应该成为新的索引,哪些列应该成为新的列,以及哪些列应该用于数据聚合。

> 语法:

>

>

> pandas.pivottable(data, values=None, index=None, columns=None, aggfunc=‘mean‘, fillvalue=None, margins=False, dropna=True, marginsname=‘All‘, observed=NoDefault.no_default, sort=True)

>

>

> #### 参数:

>

> – **data**: 用于创建数据透视表的 DataFrame。

> – **values**: 要聚合的列。可以是一个列表、单个列名或标量值。它指定将在结果数据透视表中聚合的值。

> – **index**: 列、分组器、数组或前述对象的列表。其唯一值将成为数据透视表索引的列。

> – **columns**: 列、分组器、数组或前述对象的列表。其唯一值将成为数据透视表列的列。

> – **aggfunc**: 函数、函数列表或字典。指定如何聚合值。常见选项包括 ‘mean‘(平均值)、‘sum‘(求和)、‘count‘(计数)、‘min‘(最小值)、‘max‘(最大值)等。它可以是单个函数、函数列表,或者是键为列名、值为聚合函数的字典。

> – INLINECODEc07ad16c: 标量值,默认为 INLINECODE75e48ae5。用于填充结果数据透视表中缺失值的值。

> – INLINECODE9832921e: 布尔值,默认为 INLINECODEf442c558。如果为 True,它将在数据透视表中添加行/列边距(小计)。

> – INLINECODEa692cc05: 布尔值,默认为 INLINECODE3e61a55c。如果为 True,它将从结果中排除 NA/null 值。

> – INLINECODE5c2b3a2b: 字符串,默认为 INLINECODEe48689a0。当 margins=True 时,用于包含总计的行/列的名称。

> – INLINECODEa4fe6944: 布尔值,默认为 INLINECODE41b664cd(自 2.2.0 版本起已弃用)。该参数已被弃用且不再使用。

> – INLINECODE6c7a5fb8: 布尔值,默认为 INLINECODE91a94b59。如果为 True,则按索引和列级别的名称对结果 DataFrame 进行排序。

学生成绩报告的数据透视表

让我们创建一个包含 Name(姓名)、Subject(科目)、Score(分数)和 Grade(成绩)列的 DataFrame (INLINECODE28ec6826)。随后,使用 INLINECODE52542ac7 方法生成一个数据透视表,并将 ‘Name‘ 列指定为索引。我们可以通过 aggfunc 参数定义分数和成绩列的聚合函数。对于 ‘Score‘,我们计算平均值;而对于 ‘Grade‘,我们选择遇到的 ‘first‘(第一个)值作为代表成绩。

Python3


CODEBLOCK_6f68cb44

输出:

Grade     Score    
Subject  DBMS DSA  DBMS DSA
Name                       
Jeetu       B   A    80  90
Ram         B   B    82  75
Shravan     A   A    88  85

商店商品报告的数据透视表

我们创建一个结构化的 DataFrame 来捕获与日期 Date、不同类别 Category 以及相应的数值 Value1 和 Value2 相关的信息。设置 margins=True 会沿着行和列添加小计,从而创建更详细的数据摘要。

Python3


import pandas as pd

data = {

‘Date‘: [‘2022-01-01‘, ‘2022-01-01‘, ‘2022-01-02‘, ‘2022-01-02‘],

‘Category‘: [‘A‘, ‘B‘, ‘A‘, ‘B‘],

‘Value1‘: [10, 15, 20, 25],

‘Value2‘: [30, 35, 40, 45]

}

df = pd.DataFrame(data)

Create a pivot table with multip

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/47934.html
点赞
0.00 平均评分 (0% 分数) - 0