Pandas透视表(pivot_table)详解

Pandas透视表(pivot_table)详解

Pandas中的透视表是一种可以从标准数据帧(DataFrame)中提取信息的灵活工具。您可以使用 pivot table 实现多维数据的聚合,并以各种方式对其进行查看。在本篇文章中,我将为您提供 pivot_table 的详细介绍,包括实现透视表所需的核心参数以及一些示例代码。

pivot_table 函数原型

下面是 pivot_table 函数的原型:

df.pivot_table(
    values=None,
    index=None,
    columns=None,
    aggfunc='mean',
    fill_value=None,
    margins=False,
    dropna=True,
    margins_name='All',
    observed=False,
    sort=True
)

参数解释

  • values: 需要聚合的指标名称或多个指标名称的列表。
  • index: 需要汇总的行列。
  • columns: 需要汇总的列。
  • aggfunc: 聚合函数。
  • fill_value:用于替换缺失值的值。
  • margins:是否添加All行和列。
  • dropna:是否需要删除缺失值NaN。
  • margins_name:指定All行和列的名称。
  • observed:仅适用于分类变量,默认为 False。
  • sort:默认为 True,在分组键上排序。

pivot_table 示例

示例1: 对多个关键字进行分组

该数据集包含每个时间间隔的电视机和互联网订阅收入相关信息。 我们可以使用透视表将数据按公司和年份分组 。

import pandas as pd

df = pd.read_csv("revenue.csv")
result = pd.pivot_table(df, values='revenue', index=['year'], columns=['company'])
print(result)

输出的结果将是以下内容:

company Apple Google Microsoft
year
2016 100.0 120.5 70.0
2017 85.0 110.0 95.5
2018 88.0 130.0 200.0

示例2: 使用aggfunc 和 fill_value

我们可以使用aggfunc指定聚合函数,使用fill_value指定缺失值的替代值。

import pandas as pd

df = pd.read_csv("revenue.csv")
result = pd.pivot_table(df, values='revenue', index=['year'], columns=['company'], aggfunc='sum', fill_value=0)
print(result)

输出的结果将是以下内容:

company Apple Google Microsoft
year
2016 100.0 120.5 70.0
2017 85.0 110.0 95.5
2018 88.0 130.0 200.0

另一个例子是使用 count 作为聚合函数,来计算每个公司每年总共有多少条数据:

import pandas as pd

df = pd.read_csv("revenue.csv")
result = pd.pivot_table(df, values='revenue', index=['year'], columns=['company'], aggfunc='count', fill_value=0)
print(result)

输出的结果将是以下内容:

company Apple Google Microsoft
year
2016 1 2 1
2017 2 2 1
2018 1 1 2

结论

pivot_table 是 Pandas 中一种非常有用的组合工具,可以对数据的多个维度进行统计和汇总。无论您是数据科学家,还是需要对数据进行分析的任何工作人员,pivot_table 都是您需要熟练掌握的一种技能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas透视表(pivot_table)详解 - Python技术站

(1)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 如何用Python制作微信好友个性签名词云图

    制作微信好友个性签名词云图是一项很有趣的Python项目。下面是详细的制作攻略。 1. 准备数据 要制作词云图,首先需要获取微信好友的签名数据。可以使用itchat这个Python库来获取微信好友信息。使用以下代码获取微信好友信息并将签名数据保存到文本文件中: import itchat # 登录微信 itchat.auto_login() # 获取好友列表…

    python 2023年5月14日
    00
  • Python中的pandas.bdate_range()函数

    pandas.bdate_range()函数简介 pandas.bdate_range()函数是pandas库中的一个日期生成器,用于生成指定时间周期内的工作日日期序列。该函数能够生成从开始日期到结束日期内的所有工作日日期(不包括周末和国定假日)。 函数定义如下: pandas.bdate_range(start=None, end=None, period…

    python-answer 2023年3月27日
    00
  • 在Pandas DataFrame中基于现有的列创建一个新的列

    在Pandas DataFrame中基于现有的列创建一个新的列,可以通过多种方式实现,常见的方法包括: 使用apply函数 使用assign函数 直接通过索引创建新列 下面分别介绍三种方法的详细步骤和实例说明。 使用apply函数 apply函数可以对DataFrame的某一列进行遍历和操作,具体步骤如下: 定义一个操作函数。 使用apply函数将操作函数应…

    python-answer 2023年3月27日
    00
  • Pandas直接读取sql脚本的方法

    当我们需要从SQL数据库(如MySQL,SQL Server等)中读取数据时,可以使用Python的Pandas库来实现。Pandas库提供了一种方便的方法来读取SQL查询结果并将其转换成DataFrame对象。下面是使用Pandas直接读取SQL脚本的方法: 步骤1:导入必要的库 我们首先需要导入两个库,分别是Pandas和SQLAlchemy。Panda…

    python 2023年5月14日
    00
  • 检查一个给定的列是否存在于Pandas数据框架中

    检查一个给定的列是否存在于Pandas数据框架中通常是在数据分析和处理的过程中需要进行的操作之一。下面为您详细介绍如何检查是否存在该列,并提供示例。 1. 列是否在数据框架中的判断方法 Pandas提供了 isin() 方法,可以快速地检查一个(或多个)列是否在数据框架中。具体方法如下: ‘列名’ in df.columns 其中,’列名’ 表示所要检查的列…

    python-answer 2023年3月27日
    00
  • pandas数据拼接的实现示例

    下面是关于“pandas数据拼接的实现示例”的完整攻略,包含两个示例说明: 1. 背景介绍 在数据分析过程中,常常会遇到需要将多个数据源的数据拼接和整合成一个完整数据集的情况。pandas是常用的数据分析工具之一,提供了多种数据拼接和整合的方式,本攻略将详细讲解pandas数据拼接的实现。 2. 数据拼接的方式 pandas提供了三种数据拼接方式,分别是co…

    python 2023年5月14日
    00
  • 如何在Pandas中为数据框架添加空列

    为Pandas中的数据框添加空列可以通过以下步骤: 利用Pandas的DataFrame方法创建数据框; 使用DataFrame的assign方法为数据框添加空列; 使用赋值语句给空列赋值。 下面的例子演示了如何为数据框添加空列: import pandas as pd # 创建一个包含两列数据的数据框 data = { ‘col1’: [1, 2, 3],…

    python-answer 2023年3月27日
    00
  • Pandas中的布尔索引

    Pandas中的布尔索引是一种通过布尔值来筛选数据的方法。布尔索引可以使用一个布尔值数组,它的长度必须与要筛选的轴(axis)长度一致,以此来选择DataFrame或Series中符合某些条件的行或列。接下来,我们将详细介绍Pandas中使用布尔索引的完整攻略,包括使用布尔索引来过滤数据的步骤,并使用实例进一步说明。 步骤 使用布尔索引来过滤数据,需要遵循以…

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部