📜  Pandas DataFrame.pivot_table()(1)

📅  最后修改于: 2023-12-03 15:18:13.687000             🧑  作者: Mango

Pandas DataFrame.pivot_table()

pivot_table()是Pandas库中的一个函数,用于对DataFrame进行数据透视表操作。该函数结合了groupby和reshape操作,可以非常方便地对数据进行聚合、重塑和过滤,同时也可以针对不同的维度进行细分和分析。

Signature:
pd.pivot_table(
    data,
    values=None,
    index=None,
    columns=None,
    aggfunc="mean",
    fill_value=None,
    margins=False,
    dropna=True,
    margins_name="All",
    observed=False,
)

参数说明:

  • data:需要进行透视操作的数据集
  • values:指定需要进行聚合分析的字段名称
  • index:指定作为行索引的字段名称,可以是单个字段,也可以是多个字段组成的列表
  • columns:指定作为列索引的字段名称,可以是单个字段,也可以是多个字段组成的列表
  • aggfunc:指定聚合函数,默认为mean
  • fill_value:指定缺失值填充的值
  • margins:指定是否显示合计行和合计列,默认为False
  • dropna:指定是否删除缺失数据,默认为True
  • margins_name:指定合计行和合计列的名称,默认为"All"
  • observed:指定是否在透视表中只显示观察到的值,默认为False

返回值:

返回一个DataFrame类型的数据集,其中包含对数据进行透视操作后的结果。

示例:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'gender': ['M', 'M', 'F', 'F', 'F'],
    'level': ['A', 'B', 'C', 'A', 'B'],
    'score': [80, 90, 70, 85, 95],
    'age': [20, 21, 22, 23, 24]
})

# 对gender和level字段进行透视操作,计算score的平均值
table = pd.pivot_table(df, values='score', index=['gender'], columns=['level'], aggfunc=np.mean)
print(table)

输出结果:

level    A     B     C
gender               
F       85.0  95.0  70.0
M       80.0  90.0   NaN

该示例中,我们构造了一个DataFrame数据集,其中包含几个分别代表性别、等级、分数和年龄的字段。然后,我们使用pivot_table()函数对性别和等级字段进行透视操作,以score字段作为需要聚合的值,并使用np.mean函数计算各组的平均值。结果表明,女性的平均分比男性高,且等级B的平均分最高。

通过使用pivot_table()函数,我们可以很方便地对数据进行透视操作,并且可以自由地组合各种参数,以满足不同的分析需求。同时,该函数的可读性也非常高,可以使代码更加简洁、易懂。