关键词

详解pandas.DataFrame.pivot_table()(创建透视表)函数使用方法

pandas.DataFrame.pivot_table()介绍

pandas.DataFrame.pivot_table()是pandas库中的一个函数。它可用于操作数据框(DataFrame)以创建透视表。透视表是一种灵活的汇总数据技术,它可以按多个维度对数据进行计算和汇总。

通常情况下,透视表有一个或多个行和列变量,以及一个或多个值变量。pivot_table()函数允许用户定义透视表的行、列和值变量,并指定需要进行计算的汇总函数。

语法:

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

参数说明:

  • data:需要处理的DataFrame类型数据。
  • values:指定哪些特征需要进行聚合;
  • index:指定与需要根据哪些特征来分组;
  • columns:指定哪些特征需要创建列;
  • aggfunc:指定聚合函数(默认为'mean',即求平均值)
  • fill_value:为“NaN”提供替代值;
  • margins:如果为True,则添加总计行/列,结果为交叉表与总统计信息的组合(默认为False);
  • dropna:是否在结果中删除缺失值(默认为True);
  • margins_name:指定行/列总计的名称。

pandas.DataFrame.pivot_table()使用范例

我们将通过各种示例来解释如何使用pivot_table()函数。

示例1:创建透视表来计算数据框某个特定列的平均值。

首先,我们需要创建一个数据框和一个名称为“df”的变量。接下来,我们将使用pivot_table()函数创建一个透视表。这个表将在“Company”列上进行分组,然后计算“Salary”列的平均值。

代码:

import pandas as pd
df = pd.DataFrame({'Name':['John','Mike','Sarah','Mary','Gary','Henry','Beth'], 
                   'Company':['ABC','DEF','GHI','ABC','DEF','GHI','ABC'], 
                   'Salary':[50000,55000,30000,100000,90000,70000,85000], 
                   'Bonus':[4000,4500,2000,8000,7000,5000,6500]})
print(df)

输出:

     Name Company  Salary  Bonus
0    John     ABC   50000   4000
1    Mike     DEF   55000   4500
2   Sarah     GHI   30000   2000
3    Mary     ABC  100000   8000
4    Gary     DEF   90000   7000
5   Henry     GHI   70000   5000
6    Beth     ABC   85000   6500
df.pivot_table(index=['Company'],values='Salary')

输出:

            Salary
Company           
ABC      78333.333333
DEF      72500.000000
GHI      50000.000000

结果表显示了“Company”列中每个组的平均工资,“ABC”公司的平均工资是(50000+100000+85000)/3=78333.333333,“DEF”公司的平均工资是(55000+90000)/2=72500,“GHI”公司的平均工资是(30000+70000)/2=50000。

示例2:创建透视表,并自定义聚合函数

下面的示例演示如何使用pivot_table()自定义聚合函数。在这个例子中,我们将总和函数(sum)作为我们的聚合函数。

df.pivot_table(index=['Company'],values=['Salary','Bonus'],aggfunc=sum)

输出:

        Bonus  Salary
Company              
ABC     8500    235000
DEF     11500   145000
GHI     7000    100000

我们可以看到,结果表列出了“Company”列的每个组的总和。例如,“ABC”公司的总薪水是85000+50000+100000=235000,“DEF”公司的总薪水是90000+55000=145000,“GHI”公司的总薪水是30000+70000=100000。

总结

pandas.DataFrame.pivot_table()函数是一个非常有用的函数,因为它提供了一个强大的工具来创建各种类型的透视表。函数提供的选项允许用户定义要聚合的变量和要应用的聚合函数,以及相应的行和列分组。在处理数据量较大时,透视表可以使数据的分析和汇总变得更加容易和高效。

本文链接:http://task.lmcjl.com/news/17728.html

展开阅读全文