Pandas 使用groupby计算占总数的百分比

Pandas 使用groupby计算占总数的百分比

在本文中,我们将介绍如何使用Pandas中的groupby方法来计算数据集的每个组占数据集总数的百分比,并将结果作为新的列添加到数据框中。

阅读更多:Pandas 教程

数据集

我们将使用一个包含电影列表的数据集。该数据集包含以下列:电影名称、类型、上映年份、票房收入和制片公司。我们将使用该数据集演示如何计算占总数的百分比。

开始

首先,我们需要将该数据集读入到Pandas数据框中。我们可以使用read_csv方法来读取csv格式的文件,也可以使用read_excel方法来读取Excel文件。

import pandas as pd

# 读取csv文件
df = pd.read_csv('movies.csv', encoding='utf-8')

# 读取Excel文件
df = pd.read_excel('movies.xlsx')
Python

然后,我们可以使用groupby方法按照电影类型将数据集分组。接着,我们可以使用size方法计算每个组中的元素数量,并将结果保存为一个新数据框。

# 按照电影类型分组并计算每个组中的元素数量
df_grouped = df.groupby(['类型']).size().reset_index(name='数量')

# 显示结果
print(df_grouped)
Python

输出结果如下:

  类型  数量
0  剧情  5
1  动作  4
2  爱情  3
Python

计算占总数的百分比

接下来,我们将使用groupby计算每个组在数据集中所占的百分比,并将结果作为新的列添加到数据框中。

我们可以使用sum方法计算数据集中的元素总数,然后将其保存为total变量。接着,我们可以使用apply方法将每个组中的元素数量除以total变量,得到每个组在数据集中的百分比。

# 计算数据集中的元素总数
total = df_grouped['数量'].sum()

# 计算每个组在数据集中的百分比
df_grouped['百分比'] = df_grouped['数量'].apply(lambda x: x/total)

# 显示结果
print(df_grouped)
Python

输出结果如下:

  类型  数量       百分比
0  剧情  5  0.454545
1  动作  4  0.363636
2  爱情  3  0.272727
Python

现在,我们已经成功地使用groupby计算了每个组占总数的百分比,并将结果作为新的列添加到了数据框中。

总结

在本文中,我们介绍了如何使用Pandas中的groupby方法计算数据集的每个组占数据集总数的百分比,并将结果作为新的列添加到数据框中。我们演示了如何在一个包含电影列表的数据集中实现该功能,并提供了示例代码和结果。希望本文对你有所帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册