关键词

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

作用

pandas.pivot_table()是pandas库中的一个函数,它可以根据指定的行和列,对数据进行透视,计算出指定字段的聚合值,并返回一个新的表格。pivot_table()可以帮助我们进行数据的汇总和分析,方便我们发现数据中的规律和趋势。

使用方法

pivot_table()函数的语法格式如下:

pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')

参数说明:

  • data:要进行透视的数据集,可以是Series、DataFrame或者其他类似的对象。

  • values:要聚合的字段名称,可以是字符串或者字符串列表。

  • index:行索引,即按照行进行透视的字段名称,可以是字符串或者字符串列表。

  • columns:列索引,即按照列进行透视的字段名称,可以是字符串或者字符串列表。

  • aggfunc:聚合函数,可以是mean、sum、count、max、min等函数,默认为mean函数。

  • fill_value:缺失值的填充值。

  • margins:是否添加总计行和总计列,可以是True或者False,默认为False。

  • dropna:是否过滤缺失值,可以是True或者False,默认为True。

  • margins_name:总计行和总计列的名称。

下面我们来看两个例子。

例1:对电商销售数据进行透视分析

我们有一份电商销售数据,包含了用户ID、商品类别和销售额字段。我们需要按照不同的商品类别和用户ID进行透视,计算出每种商品类别下每个用户的平均销售额。

import pandas as pd

# 创建DataFrame
sales_data = pd.DataFrame({
    'UserID': [1, 1, 2, 2, 3, 3, 4, 4],
    'Category': ['A', 'B', 'A', 'B', 'A', 'B', 'A', 'B'],
    'Sales': [100, 200, 150, 300, 180, 220, 120, 250]
})

# 对数据进行透视
result = pd.pivot_table(
    data=sales_data,
    values='Sales',
    index='UserID',
    columns='Category',
    aggfunc='mean'
)

print(result)

输出结果:

Category    A    B
UserID          
1         100  200
2         150  300
3         180  220
4         120  250

代码说明:

我们通过pivot_table()函数对销售数据进行了透视分析,按照行进行分组的字段为UserID,按照列进行分组的字段为Category,计算的聚合函数为mean(均值),聚合的字段为Sales。最终结果表明,在每个商品类别下,每个用户的平均销售额是多少。

例2:对旅游数据进行透视分析

我们有一份旅游数据,包含了旅游目的地、时间和花费字段。我们需要按照不同的目的地和时间进行透视,计算出每个目的地在不同时间段的平均花费和最高花费。

import pandas as pd

# 创建DataFrame
travel_data = pd.DataFrame({
    'Destination': ['Beijing', 'Shanghai', 'Beijing', 'Shanghai', 'Beijing', 'Shanghai'],
    'Time': ['2019-01', '2019-01', '2019-02', '2019-02', '2019-03', '2019-03'],
    'Cost': [1000, 1200, 800, 900, 1300, 1400]
})

# 对数据进行透视
result = pd.pivot_table(
    data=travel_data,
    values='Cost',
    index='Destination',
    columns='Time',
    aggfunc=['mean', 'max']
)

print(result)

输出结果:

                  mean                  max          
Time           2019-01 2019-02 2019-03 2019-01 2019-02 2019-03
Destination                                                  
Beijing         1000.0   800.0  1300.0    1000     800    1300
Shanghai        1200.0   900.0  1400.0    1200     900    1400

代码说明:

我们通过pivot_table()函数对旅游数据进行了透视分析,按照行进行分组的字段为Destination,按照列进行分组的字段为Time,计算的聚合函数为mean和max,聚合的字段为Cost。最终结果表明,在每个目的地下,不同时间段的平均花费和最高花费分别是多少。

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

展开阅读全文