Python中使用count()函数统计pandas数据框某列中不同值的出现次数
在Python的pandas库中,可以使用count()函数来统计DataFrame中某一列(Series)中不同值的出现次数。count()函数会返回一个新的Series对象,其中包含了不同值作为索引,对应的值为该值在原始Series中出现的次数。
下面是一个使用count()函数统计某列中不同值的出现次数的例子:
首先,我们需要导入pandas库并创建一个DataFrame,用于演示count()函数的用法:
import pandas as pd
# 创建一个包含考试成绩的DataFrame
df = pd.DataFrame({'姓名': ['小明', '小红', '小李', '小明', '小王', '小红', '小明', '小李'],
'成绩': [90, 80, 85, 92, 87, 80, 90, 88]})
print(df)
输出结果为:
姓名 成绩 0 小明 90 1 小红 80 2 小李 85 3 小明 92 4 小王 87 5 小红 80 6 小明 90 7 小李 88
接下来,我们可以使用count()函数来统计成绩列中不同值的出现次数:
# 统计成绩列中不同值的出现次数 count_series = df['成绩'].value_counts() print(count_series)
输出结果为:
90 2 80 2 88 1 87 1 85 1 92 1 Name: 成绩, dtype: int64
可以看到,count_series是一个新的Series对象,它的索引是成绩列中的不同值(90, 80, 88, 87, 85, 92),对应的值则是每个值在成绩列中出现的次数。
我们还可以进一步对count_series进行排序,将出现次数最多的值排在前面,可以使用sort_values()函数来实现:
# 对count_series进行排序 sorted_series = count_series.sort_values(ascending=False) print(sorted_series)
输出结果为:
90 2 80 2 88 1 87 1 85 1 92 1 Name: 成绩, dtype: int64
可以看到,sorted_series是一个新的Series对象,它的索引是成绩列中的不同值,对应的值是每个值在成绩列中出现的次数,并按照出现次数从大到小进行了排序。
除了对整个DataFrame中的某列进行统计,我们还可以对DataFrame中多个列同时使用count()函数进行统计。例如,我们可以同时统计姓名和成绩两列中不同值的出现次数:
# 统计姓名和成绩两列中不同值的出现次数 count_df = df[['姓名', '成绩']].apply(lambda x: x.value_counts()).T.stack() print(count_df)
输出结果为:
姓名 小红 2.0
小李 2.0
小王 1.0
小明 3.0
成绩 80 2.0
85 1.0
87 1.0
88 1.0
90 2.0
92 1.0
dtype: float64
可以看到,count_df是一个新的DataFrame对象,它的行索引是姓名和成绩列中的不同值,列索引是原始DataFrame的列名(姓名和成绩),对应的值是每个值在对应列中出现的次数。
通过以上的例子,我们可以看到在Python中使用count()函数统计pandas数据框某列中不同值的出现次数是非常简单的。通过count()函数,我们可以快速、方便地了解DataFrame中某列中不同值的分布情况。
