2024年05月17日 Python pivot table 行汇总百分比 极客笔记
在数据分析中,pivot table 是一个非常实用的工具,可以根据给定的数据集,快速生成透视表格,对数据进行聚合、汇总分析。而在 pivot table 中,行汇总百分比是一个常见的需求,通过计算每行数据在总计中的占比,可以更直观地了解数据的分布情况。
本文将使用 Python 中的 pandas 库来实现 pivot table 行汇总百分比的功能,并通过示例代码演示具体的实现方法。
在开始之前,我们首先需要导入 pandas 库,pandas 是 Python 中用于数据处理和分析的重要工具。
import pandas as pd
为了演示 pivot table 行汇总百分比的方法,我们首先创建一个简单的示例数据集。
data = {
'A': ['A1', 'A2', 'A1', 'A2', 'A3'],
'B': ['B1', 'B1', 'B2', 'B2', 'B3'],
'Value': [10, 20, 30, 40, 50]
}
df = pd.DataFrame(data)
print(df)
运行以上代码,我们可以得到如下示例数据集:
A B Value
0 A1 B1 10
1 A2 B1 20
2 A1 B2 30
3 A2 B2 40
4 A3 B3 50
接下来,我们使用 pivot_table()
方法创建透视表,并计算行汇总百分比。
pivot = pd.pivot_table(df, values='Value', index='A', columns='B', aggfunc='sum', margins=True, margins_name='Total')
for column in pivot.columns:
pivot[column + '_Percentage'] = pivot[column] / pivot['Total'] * 100
print(pivot)
在以上代码中,我们使用 pivot_table()
方法创建透视表,其中指定了values
、index
、columns
分别代表数值字段、行索引、列索引,aggfunc='sum'
表示对数值字段进行求和操作,margins=True
表示显示总计行,margins_name='Total'
表示总计行的名称为’Total’。
最后,我们遍历透视表的每一列,计算每行数据在总计中的百分比,并添加新的列保存计算结果。
运行以上代码,我们可以得到计算行汇总百分比后的透视表结果:
B1 B2 B3 Total B1_Percentage B2_Percentage B3_Percentage
A
A1 10.0 30.0 0.0 40 25.0 75.0 0.0
A2 20.0 40.0 0.0 60 33.3 66.7 0.0
A3 0.0 0.0 50.0 50 0.0 0.0 100.0
Total 30.0 70.0 50.0 150 20.0 46.7 33.3
通过以上示例,我们学习了如何使用 Python 中的 pandas 库来实现 pivot table 行汇总百分比的功能。通过计算每行数据在总计中的百分比,我们可以更清晰地了解数据的分布情况,从而进行更有效的数据分析和决策。
本文链接:http://so.lmcjl.com/news/4711/