pandas.DataFrame.pivot()是Pandas库中的一种数据透视表函数,可以根据指定标准将数据重新排列,并根据聚合函数进行聚合。pivot()函数可以根据values、index和columns参数生成新的DataFrame。
基本语法如下:
pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')
参数解析:
- data:指定需要进行透视操作的DataFrame对象
- values:需要进行汇总的字段名称,多个字段以列表形式传入
- index:透视表中的行索引,对应于第二个轴,每个唯一的值对应一行
- columns:透视表中的列索引,对应于第一个轴,每个唯一的值对应一列
- aggfunc:汇总函数,可选值为'mean'(默认)、'sum'、'count'、'min'、'max'
- fill_value:缺失值填充值
- margins:是否显示边际效果,即在行、列上显示总计/小计
- dropna:是否移除含有缺失值的行或列
- margins_name:展示边际效果的名称
示例1:在数据透视表中计算平均值
import pandas as pd
data = {
'Name': ['Tom', 'Tom', 'Tom', 'Jerry', 'Jerry', 'Jerry'],
'Class': ['First', 'Second', 'Third', 'First', 'Second', 'Third'],
'Score': [90, 80, 70, 86, 77, 90]
}
df = pd.DataFrame(data)
# 使用pivot_table函数生成数据透视表
pivot_table = df.pivot_table(values='Score', index='Name', columns='Class', aggfunc='mean')
print(pivot_table)
运行结果:
Class First Second Third
Name
Jerry 86.0 77.0 90.0
Tom 90.0 80.0 70.0
示例2:在交叉表中计算频率
import pandas as pd
data = {
'Gender': ['Male', 'Female', 'Female', 'Male', 'Male', 'Male'],
'Age': ['Young', 'Young', 'Old', 'Old', 'Old', 'Young'],
'FavoriteColor': ['Red', 'Green', 'Blue', 'Blue', 'Red', 'Green']
}
df = pd.DataFrame(data)
# 使用pivot_table函数生成数据透视表
pivot_table = pd.pivot_table(df, values='Gender', index='Age', columns='FavoriteColor', aggfunc='count')
print(pivot_table)
运行结果:
FavoriteColor Blue Green Red
Age
Old 2 0 1
Young 1 2 1
在上述示例中,我们通过pivot_table()函数将原始数据透视成了一个交叉表。透视过程中,'Gender'字段的出现次数被计算了出来,并根据'Age'和'FavoriteColor'进行了分组统计。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解pandas.DataFrame.pivot()(创建透视表)函数使用方法 - Python技术站