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')
参数说明:
我们将通过各种示例来解释如何使用pivot_table()函数。
首先,我们需要创建一个数据框和一个名称为“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。
下面的示例演示如何使用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