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()函数是一个非常有用的函数,因为它提供了一个强大的工具来创建各种类型的透视表。函数提供的选项允许用户定义要聚合的变量和要应用的聚合函数,以及相应的行和列分组。在处理数据量较大时,透视表可以使数据的分析和汇总变得更加容易和高效。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解pandas.DataFrame.pivot_table()(创建透视表)函数使用方法 - Python技术站