pandas.pivot_table() 是一个用于数据透视的函数,它可以通过汇总和聚合数据来从数据集中创建一个新的数据表。以下是关于pivot_table()函数的作用和使用方法的详细攻略。
作用
pandas.pivot_table()函数的主要作用是创建一个能够按照用户指定的条件聚合、汇总数据的新表格。利用该函数可以方便地计算数据集中的各种统计量,如平均值、中位数、方差等,还能提供各种有用的集合操作,如分组、排序等。
使用方法
pandas.pivot_table()函数有很多参数,下面对其常用的几个参数进行简要介绍。
参数
- data:数据集,即需要进行聚合计算的数据集
- values:需要汇总的数据列(或多列)
- index:行索引,即需要根据哪些列进行行分组
- columns:列索引,即需要在哪些列上进行列分组
- aggfunc:聚合函数,即需要对汇总数据进行哪种聚合操作,如求和、平均值等,默认使用平均值aggfunc=mean
- fill_value:填充值,即如何处理缺失值,默认为空值fill_value=’ ‘
- margins:是否添加行/列的汇总数据,默认不添加,margins=True表示添加
- dropna:是否删除空行/列,默认不删除,dropna=True表示删除
实例
以下是两个使用示例,帮助理解pivot_table()函数的基本功能。
示例1:基本用法
import pandas as pd
data = {'Gender': ['M', 'M', 'F', 'F', 'F', 'M'],
'Height': [190, 180, 170, 165, 175, 170],
'Weight': [80, 70, 60, 55, 65, 72],
'Age': [30, 25, 23, 28, 32, 27]}
df = pd.DataFrame(data)
# 先按Gender进行分组,然后求各分组的平均值
result = pd.pivot_table(df, values=['Height', 'Weight', 'Age'], index=['Gender'], aggfunc='mean')
print(result)
运行后,得到以下的结果:
Gender | Age | Height | Weight |
---|---|---|---|
F | 27.7 | 170.0 | 63.3 |
M | 27.3 | 180.0 | 74.0 |
这个示例展示了对数据进行分组并计算平均值的基本用法。该示例将数据集进行分组,并计算每个分组中身高、体重和年龄的平均值。
示例2:创建数据透视表
data = {"Region":["East","East","West","West","North","North","South","South"],
"Product":["Milk","Bread","Milk","Bread","Milk","Bread","Milk","Bread"],
"Sales":[100,50,200,150,300,200,150,100]}
df = pd.DataFrame(data)
ptable = pd.pivot_table(df, index='Region', columns='Product', values='Sales', aggfunc='sum', fill_value=0)
print(ptable)
这个示例展示了如何使用pivot_table()函数创建数据透视表。该示例创建了一个包含销售数据的数据集,并按地区和产品进行分组。然后通过sum聚合函数对销售数据进行求和,并使用fill_value参数填充缺失值。最后得到以下的数据透视表:
Product | Bread | Milk |
---|---|---|
East | 50 | 100 |
North | 200 | 300 |
South | 100 | 150 |
West | 150 | 200 |
这个表格将数据按产品和地区分类,并聚合了销售数据。它提供了对产品和地区之间关系的更深入的理解,并提供了一些有用的集合操作,如排序和筛选。