如何使用 Pandas 在 Python 中创建数据透视表?

如何使用 Pandas 在 Python 中创建数据透视表?

数据透视表是一种强大的数据分析工具,允许您根据不同的维度对数据进行汇总和聚合。在 Python 中,您可以使用 Pandas 库创建数据透视表,该库提供了灵活和高效的数据处理和分析工具。

要在 Pandas 中创建数据透视表,您首先需要在 Pandas DataFrame 中拥有数据集。您可以从各种来源如 CSV 文件、Excel 电子表格、SQL 数据库等中将数据加载到 DataFrame 中。

一旦将数据加载到 DataFrame 中,您就可以使用 Pandas 的 pivot_table() 函数来创建数据透视表。以下是其语法 –

dataframe.pivot(self, index=None, columns=None, values=None, aggfunc) 

pivot_table() 函数有几个参数,包括要使用的 DataFrame,索引列、要作为数据透视表中的列使用的列,以及要聚合的值列。您还可以指定要使用的聚合函数,如 sum、mean、max、min 等。

在我们深入探讨数据透视表和 pivot_table() 函数之前,让我们首先创建一个我们将要使用的 DataFrame。

Pandas 中的 DataFrame

在 Pandas 中,DataFrame 是具有可能不同类型的列的二维标记数据结构。它是 Pandas 中用于数据处理和分析的主要数据结构。

DataFrame 可以被视为一个电子表格或 SQL 表,它具有行和列。它允许轻松处理和操作数据,包括索引,选择,过滤,合并和分组。

考虑下面的代码。 使用 Python 字典,该代码创建了一个名为 df 的 DataFrame 对象,其中包含列’Product’,’Category’,’Quantity’和’Amount’四列。 字典的每个键对应于列的名称,其值是一个包含该列值的列表。

示例

# 导入 Pandas 库
import pandas as pd

# 使用字典创建 DataFrame
df = pd.DataFrame({
   'Product': ['荔枝', '西兰花', '香蕉', '香蕉', '豆子', '橙子', '芒果', '香蕉'],
   'Category': ['水果', '蔬菜', '水果', '水果', '蔬菜', '水果', '水果', '水果'],
   'Quantity': [8, 5, 3, 4, 5, 9, 11, 8],
   'Amount': [270, 239, 617, 384, 626, 610, 62, 90]
})

# 打印 DataFrame
print(df) 

输出

执行此代码时,它将在终端上产生以下输出 −

  Product  Category  Quantity Amount
0  荔枝   水果         8       270
1  西兰花  蔬菜         5       239
2  香蕉   水果         3       617
3  香蕉   水果         4       384
4  豆子   蔬菜         5       626
5  橙子   水果         9       610
6  芒果   水果        11       62
7  香蕉   水果         8       90

使用 Pandas 创建数据透视表

现在让我们使用 pivot_table() 函数创建一个销售总额的数据透视表。 见下面的代码。

示例

# 导入 pandas 库
import pandas as pd

# 从字典中创建数据帧

# 用其值创建“产品”、“类别”、“数量”、“金额”列
df = pd.DataFrame({
   'Product': ['荔枝', '西兰花', '香蕉', '香蕉', '豆类', '橙子', '芒果', '香蕉'],
   'Category': ['水果', '蔬菜', '水果', '水果', '蔬菜', '水果', '水果', '水果'],
   'Quantity': [8, 5, 3, 4, 5, 9, 11, 8],
   'Amount': [270, 239, 617, 384, 626, 610, 62, 90]
})

# 创建总销售额的透视表

# 按产品分组
pivot = df.pivot_table(index =['Product'], values =['Amount'], aggfunc ='sum')
print(pivot)

# 打印数据帧
print(df)

解释

  • 它创建了一个名为 df 的 DataFrame 对象,包含四列:’Product’、’Category’、’Quantity’ 和 ‘Amount’。每列都有它自己的值,并使用 Python 字典创建。
  • 然后,代码创建一个透视表,它将销售数据按产品分组,并使用 pivot_table() 函数计算每个产品的总销售额。
  • 最后,将透视表打印到控制台以显示每个产品的总销售数据,并将原始 DataFrame 打印到控制台以显示生成透视表的原始数据。

输出

执行后,您将在终端上获得以下输出 –

Product  Amount
Banana    1091
Beans     626
Broccoli  239
Litchi    270
Mango     62
Orange    610 
  Product  Category  Quantity Amount
0  Litchi   Fruit      8       270
1  Broccoli Vegetable  5       239
2  Banana   Fruit      3       617
3  Banana   Fruit      4       384
4  Beans    Vegetable  5       626
5  Orange   Fruit      9       610
6  Mango    Fruit      11      62
7  Banana   Fruit       8      90

结论

总之,使用 pandas 库在 Python 中创建透视表是一种分析表格数据和提取有意义见解的强大方式。通过分组数据和计算聚合值,透视表可以帮助您识别数据中可能难以发现的模式和趋势。使用 pandas 提供的灵活性和易用性,创建透视表从未如此简单。

通过遵循本教程中概述的步骤,您现在应该掌握了在 Python 中创建和处理透视表的扎实基础。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python 教程