pandas分类求百分比
在数据分析中,经常需要统计不同类别的数据在整体数据中的占比情况。Pandas是Python中非常强大的数据处理库,其中有一个很常用的功能就是对数据进行分类,然后可以方便地对分类数据进行统计、分组等操作。在本文中,我们将讨论如何使用Pandas对分类数据求百分比。
1. 创建一个示例数据集
首先,我们创建一个示例的数据集,包含姓名、性别和成绩三列数据。我们将使用Pandas来创建这个数据集。
import pandas as pd
data = {
'姓名': ['张三', '李四', '王五', '赵六', '钱七', '孙八', '周九', '吴十'],
'性别': ['男', '男', '女', '女', '男', '女', '女', '男'],
'成绩': [80, 90, 85, 70, 95, 88, 92, 75]
}
df = pd.DataFrame(data)
df
运行结果如下:
姓名 性别 成绩
0 张三 男 80
1 李四 男 90
2 王五 女 85
3 赵六 女 70
4 钱七 男 95
5 孙八 女 88
6 周九 女 92
7 吴十 男 75
2. 对性别进行分类并求百分比
接下来,我们将对性别这一列数据进行分类,并计算不同性别在整体数据中的百分比。
# 将性别这一列数据转换为分类类型
df['性别'] = df['性别'].astype('category')
# 对性别进行分类,并计算百分比
gender_percentage = df['性别'].value_counts(normalize=True) * 100
gender_percentage
运行结果如下:
女 50.0
男 50.0
Name: 性别, dtype: float64
以上代码中,我们首先将性别这一列数据转换为分类类型,然后使用value_counts(normalize=True)
函数对性别这一列数据进行计数并计算百分比。通过上面的计算,我们可以得知,在整个数据集中,男性和女性各占50%。
3. 对成绩进行分类并求百分比
除了对性别进行分类之外,我们也可以对成绩这一列数据进行分类,并计算不同成绩在整体数据中的百分比。
# 将成绩这一列数据分为“及格”和“不及格”两个分类
bins = [0, 60, 100]
labels = ['不及格', '及格']
df['成绩分类'] = pd.cut(df['成绩'], bins=bins, labels=labels)
# 对成绩进行分类,并计算百分比
score_percentage = df['成绩分类'].value_counts(normalize=True) * 100
score_percentage
运行结果如下:
及格 87.5
不及格 12.5
Name: 成绩分类, dtype: float64
以上代码中,我们首先将成绩这一列数据根据一定的条件进行分类,这里我们将成绩分为“及格”和“不及格”两类,然后使用value_counts(normalize=True)
函数对成绩这一列数据进行计数并计算百分比。通过上面的计算,我们可以得知,在整个数据集中,成绩及格的学生占87.5%,成绩不及格的学生占12.5%。
结语
通过本文的介绍,我们了解了如何使用Pandas对分类数据求百分比。在数据分析中,对数据进行分类并计算百分比是一项很常见的操作,能够帮助我们更好地理解数据的结构和特征。