📜  Pandas 中的数据透视表(1)

📅  最后修改于: 2023-12-03 15:33:24.084000             🧑  作者: Mango

Pandas 中的数据透视表

数据透视表(Pivot Table)是一种非常常见的数据处理方式,它可以将一个表格中的数据根据某些键值进行聚合统计,得到一个新的表格。在 Pandas 中,我们可以使用 pandas.pivot_table() 函数来实现数据透视表的生成。

函数语法
pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')

参数:

  • data:要进行聚合的数据框;
  • values:要统计的值,默认统计全部的值;
  • index:按照哪些列进行聚合,这里是行标签;
  • columns:按照哪些列进行聚合,这里是列标签;
  • aggfunc:聚合函数,默认为 mean;
  • fill_value:缺失值所要填充的值;
  • margins:是否在结果中显示全部统计信息;
  • dropna:是否删除缺失值,True 为删除,False 为保留;
  • margins_name:统计信息的名称,默认为 “All”。
实例演示

下面我们通过一个示例来演示 Pandas 中的数据透视表的生成过程。

首先我们加载示例数据框:

>>> import pandas as pd
>>> df = pd.read_csv("sales.csv")
>>> print(df)

输出结果为:

    Month  Salesperson Region    Sales
0  Jan-17            1    EMEA   500000
1  Jan-17            2    ASIA   800000
2  Jan-17            3   US/CA  1200000
3  Feb-17            1    EMEA   600000
4  Feb-17            2    ASIA   700000
5  Feb-17            3   US/CA   900000
6  Mar-17            1    EMEA   750000
7  Mar-17            2    ASIA   650000
8  Mar-17            3   US/CA   950000

数据框中包含了三个区域的三个销售人员每月销售额的数据。

我们现在需要将数据按照区域和月份进行分组,并计算每组数据的总销售额。可以使用如下代码生成数据透视表:

>>> pivot_table = pd.pivot_table(df, values='Sales', index='Region', columns='Month', aggfunc='sum')
>>> print(pivot_table)

输出结果为:

Month     Feb-17   Jan-17   Mar-17
Region                            
ASIA     700000.0  800000.0  650000.0
EMEA     600000.0  500000.0  750000.0
US/CA    900000.0  1200000.0 950000.0

可以看到,生成的数据透视表将数据按照指定的行标签和列标签进行了聚合,并计算了每组数据的总销售额。

结论

Pandas 中的数据透视表提供了一种非常便利的数据处理方式,能够帮助我们快速地将数据根据某些键值进行聚合统计,并生成新的数据框。使用 Pandas 中的 pandas.pivot_table() 函数,可以帮助我们快速地生成数据透视表。