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

  • Post category:Python

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

这个表格将数据按产品和地区分类,并聚合了销售数据。它提供了对产品和地区之间关系的更深入的理解,并提供了一些有用的集合操作,如排序和筛选。