如何使用 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 中创建和处理透视表的扎实基础。