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 | 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 | 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 | Microsoft | |
---|---|---|---|
year | |||
2016 | 1 | 2 | 1 |
2017 | 2 | 2 | 1 |
2018 | 1 | 1 | 2 |
结论
pivot_table 是 Pandas 中一种非常有用的组合工具,可以对数据的多个维度进行统计和汇总。无论您是数据科学家,还是需要对数据进行分析的任何工作人员,pivot_table 都是您需要熟练掌握的一种技能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas透视表(pivot_table)详解 - Python技术站