📅  最后修改于: 2023-12-03 15:18:13.687000             🧑  作者: Mango
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
:指定聚合函数,默认为meanfill_value
:指定缺失值填充的值margins
:指定是否显示合计行和合计列,默认为Falsedropna
:指定是否删除缺失数据,默认为Truemargins_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()
函数,我们可以很方便地对数据进行透视操作,并且可以自由地组合各种参数,以满足不同的分析需求。同时,该函数的可读性也非常高,可以使代码更加简洁、易懂。