关键词

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

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'进行了分组统计。

本文链接:http://task.lmcjl.com/news/17727.html

展开阅读全文