Pandas 分组后计算比例百分比

Pandas 分组后计算比例百分比

在本文中,我们将讨论如何使用Pandas进行分组操作并计算每组占总数的比例百分比。这在数据分析等领域经常常用。下面的示例数据将用来演示这个过程。

import pandas as pd

data = {'class': ['A', 'A', 'B', 'B', 'C', 'C'],
        'score': [80, 90, 85, 92, 70, 82]}
df = pd.DataFrame(data)

以上代码将创建一个DataFrame,其中包含一个class列代表班级以及一个score列代表分数。

class score
0 A 80
1 A 90
2 B 85
3 B 92
4 C 70
5 C 82

阅读更多:Pandas 教程

Pandas 分组

首先,我们将使用groupby函数来按照班级进行分组。这可以使用下面的语句完成。

grouped = df.groupby('class')

运行以上代码后,grouped将成为一个DataFrameGroupBy对象,该对象将数据按照班级进行了分组。接下来,我们可以使用size()函数来查看每个班级的数据量。

print(grouped.size())

输出结果为:

class
A    2
B    2
C    2
dtype: int64

这表明了每个班级有几个数据。

计算比例百分比

有了按班级分组的数据,我们可以将每个班级的数据相加,从而得到数据的总量。可以使用sum()函数来实现。

total = grouped['score'].sum()

total将包含每个班级的总分数。接下来,我们可以将每个班级的总分数除以总分数的总和,从而得到每个班级的百分比。可以使用下面的代码来实现。

percentage = total / total.sum() * 100

percentage对象将包含每个班级的比例百分比。

最后,我们可以使用reset_index()函数将percentage转换为DataFrame。这可以使用下面的代码实现。

result = percentage.reset_index(name='percentage')

result将是一个新的DataFrame,其中包含每个班级的比例百分比。

class percentage
0 A 25.101215
1 B 26.758793
2 C 48.140992

总结

本文介绍了如何使用Pandas进行分组计算比例百分比。使用groupby()函数,我们能将数据按照分组分好。使用sum()函数统计每组数据,然后除以总分数的总和,从而得到每组的比例百分比。最后使用reset_index()函数将结果转化为DataFrame,方便存储和使用。这是数据分析中常用的技巧,相信本文的内容可以为使用Pandas的读者提供实用的技巧。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程