Pandas 列中各项出现的频率

您所在的位置:网站首页 出现的频率 Pandas 列中各项出现的频率

Pandas 列中各项出现的频率

2024-07-10 10:27| 来源: 网络整理| 查看: 265

Pandas 列中各项出现的频率

在本文中,我们将介绍如何使用Pandas获取数据框中某列的每个项目出现的频率百分比。

阅读更多:Pandas 教程

Pandas 使用value_counts()方法

使用value_counts()方法,可以很容易地确定数据框中某一列中每个元素出现的次数。

例如,我们有一个数据集,其中一列包含不同的水果名称,我们想知道每种水果出现的频率。我们可以使用以下代码:

import pandas as pd df = pd.read_csv('fruits.csv') fruit_counts = df['Fruit'].value_counts(normalize=True) * 100 print(fruit_counts)

这会在控制台上打印每种水果出现的百分比。normalize = True参数用于将计数除以总数,以获得频率,*100为了将频率转化为百分比。结果如下所示:

Apple 33.3 Banana 22.2 Orange 22.2 Strawberry 11.1 Blueberry 11.1 Name: Fruit, dtype: float64 Pandas 使用groupby()方法

除了使用value_counts()方法,还可以使用groupby()方法更深入地分析数据。

例如,我们有一个数据集,其中一列包含人员姓名,另一列包含所属部门。我们想知道每个部门中员工的数量及其所占百分比。我们可以使用以下代码:

import pandas as pd df = pd.read_csv('employees.csv') grouped_df = df.groupby(['Department'])['Name'].count().reset_index() grouped_df['Percentage'] = grouped_df['Name'] / grouped_df['Name'].sum() * 100 print(grouped_df)

这将在控制台上打印每个部门中的员工数以及其所占的百分比。reset_index()方法用于从分组生成的新数据框中返回原始索引,结果如下所示:

Department Name Percentage 0 Sales 6 40.0 1 Marketing 5 33.3 2 Accounting 3 20.0 3 IT 1 6.7 Pandas 使用crosstab()方法

crosstab()方法用于计算两列之间的频率和比例。

例如,我们有一个数据集,其中一列包含人员姓名,另一列包含所属部门,还有一列包含员工工资范围。我们想知道每个部门中不同薪资范围的员工数量和所占的百分比。我们可以使用以下代码:

import pandas as pd df = pd.read_csv('employees_salary.csv') cross_df = pd.crosstab([df['Department'], df['Salary Range']], columns='count', normalize='index') * 100 print(cross_df)

这将在控制台上打印每个部门中每个薪资范围的员工数量和所占的百分比。normalize = ‘index’参数用于计算每行中的频率。结果如下所示:

col_0 count Department Salary Range Accounting High 33.3 Low 33.3 Medium 33.3 IT High 100.0 Marketing High 20.0 Low 60.0 Medium 20.0 Sales High 50.0 Low 16.7 Medium 33.3 总结

使用Pandas,我们可以很容易地计算数据框中每列中每个项目出现的频率和百分比,并更深入地分析数据。使用value_counts()方法,我们可以计算每个项目的出现次数。使用groupby()方法,我们可以对项目进行更深入的分组和计算。使用crosstab()方法,我们可以计算两列之间的频率和比例。无论是简单的计数还是更深入的分析,Pandas都提供了强大的工具来帮助完成任务。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3