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

pythonpandasserver side programmingprogramming

数据透视表是一种强大的数据分析工具,可让您根据不同维度汇总和聚合数据。在 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 和 pivot_table() 函数之前,让我们先创建一个我们将要使用的数据框。

Pandas 中的 DataFrame

Pandas 中的 DataFrame 是一种二维标记数据结构,其列可能具有不同类型的类型。它是 pandas 中用于数据操作和分析的主要数据结构。

DataFrame 可以看作是电子表格或 SQL 表,具有行和列。它可以轻松处理和操作数据,包括索引、选择、过滤、合并和分组。

考虑下面显示的代码。此代码使用 Python 字典创建一个名为 df 的 DataFrame 对象,其中包含四列,分别为"产品"、"类别"、"数量"和"金额"。字典的每个键都与列的名称相对应,其值是包含该列值的列表。

示例

# 导入 pandas 库
import pandas as pd

# 从字典创建数据框

# 创建列 'Product'、'Category'、'Quantity'、'Amount' 及其值
df = pd.DataFrame({
   'Product': ['Litchi', 'Broccoli', 'Banana', 'Banana', 'Beans', 'Orange', 'Mango', 'Banana'],
   'Category': ['Fruit', 'Vegetable', 'Fruit', 'Fruit', 'Vegetable', 'Fruit', 'Fruit', 'Fruit'],
   'Quantity': [8, 5, 3, 4, 5, 9, 11, 8],
   'Amount': [270, 239, 617, 384, 626, 610, 62, 90]
})

# 打印数据框
print(df)

输出

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

  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 创建数据透视表

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

示例

# 导入 pandas 库
import pandas as pd

# 从字典创建数据框

# 创建列 'Product'、'Category'、'Quantity'、'Amount' 及其值
df = pd.DataFrame({
   'Product': ['Litchi', 'Broccoli', 'Banana', 'Banana', 'Beans', 'Orange', 'Mango', 'Banana'],
   'Category': ['Fruit', 'Vegetable', 'Fruit', 'Fruit', 'Vegetable', 'Fruit', 'Fruit', 'Fruit'],
   '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 中创建和使用数据透视表的坚实基础。


相关文章