Python pivot table 行汇总百分比

2024年05月17日 Python pivot table 行汇总百分比 极客笔记

Python pivot table 行汇总百分比

在数据分析中,pivot table 是一个非常实用的工具,可以根据给定的数据集,快速生成透视表格,对数据进行聚合、汇总分析。而在 pivot table 中,行汇总百分比是一个常见的需求,通过计算每行数据在总计中的占比,可以更直观地了解数据的分布情况。

本文将使用 Python 中的 pandas 库来实现 pivot table 行汇总百分比的功能,并通过示例代码演示具体的实现方法。

1. 导入必要的库

在开始之前,我们首先需要导入 pandas 库,pandas 是 Python 中用于数据处理和分析的重要工具。

import pandas as pd

2. 创建示例数据集

为了演示 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

3. 创建透视表并计算行汇总百分比

接下来,我们使用 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() 方法创建透视表,其中指定了valuesindexcolumns 分别代表数值字段、行索引、列索引,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

4. 总结

通过以上示例,我们学习了如何使用 Python 中的 pandas 库来实现 pivot table 行汇总百分比的功能。通过计算每行数据在总计中的百分比,我们可以更清晰地了解数据的分布情况,从而进行更有效的数据分析和决策。

本文链接:http://so.lmcjl.com/news/4711/

展开阅读全文