在使用 Pandas 进行数据分析时,数据透视表(pivot table)是一个非常有用的工具。它允许你对数据进行分组、聚合和总结。你可以使用 pivot_table
方法来创建数据透视表,并且可以通过 aggfunc
参数来指定聚合函数,例如计数(count
)。
以下是一个详细的示例,展示如何使用 Pandas 创建一个具有各自计数的数据透视表。
假设我们有一个包含销售数据的 DataFrame:
import pandas as pd
data = {
'Date': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02', '2023-01-03'],
'Product': ['A', 'B', 'A', 'B', 'A'],
'Sales': [100, 150, 200, 250, 300]
}
df = pd.DataFrame(data)
print(df)
输出:
Date Product Sales
0 2023-01-01 A 100
1 2023-01-01 B 150
2 2023-01-02 A 200
3 2023-01-02 B 250
4 2023-01-03 A 300
我们希望创建一个数据透视表,显示每个日期和产品的销售数量。
pivot_table = pd.pivot_table(df,
index='Date',
columns='Product',
values='Sales',
aggfunc='count',
fill_value=0)
print(pivot_table)
输出:
Product A B
Date
2023-01-01 1 1
2023-01-02 1 1
2023-01-03 1 0
index='Date'
:将日期作为行索引。columns='Product'
:将产品作为列。values='Sales'
:我们感兴趣的值是销售数量。aggfunc='count'
:我们使用 count
作为聚合函数来计算每个组的数量。fill_value=0
:将缺失值填充为 0。假设我们还想计算每个日期和产品的销售总额和平均销售额。我们可以使用 aggfunc
参数传递一个字典来指定多个聚合函数。
pivot_table = pd.pivot_table(df,
index='Date',
columns='Product',
values='Sales',
aggfunc={'Sales': ['sum', 'mean', 'count']},
fill_value=0)
print(pivot_table)
输出:
Sales
sum mean count
Product A B A B A B
Date
2023-01-01 100 150 100 150 1 1
2023-01-02 200 250 200 250 1 1
2023-01-03 300 0 300 0 1 0
aggfunc={'Sales': ['sum', 'mean', 'count']}
:我们指定了多个聚合函数,包括总和(sum
)、平均值(mean
)和计数(count
)。领取专属 10元无门槛券
手把手带您无忧上云