计算 Pandas 列中特定值的出现次数可以使用 value_counts() 函数。下面是对该函数的详细讲解。
Series.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)
normalize
: 如果为 True,则返回相对频率(每个值的出现次数除以总元素数)。如果为 False,则返回绝对频率(每个值出现的次数)。sort
: 如果为 True,则按值进行排序。ascending
: 如果为 True,则按升序排序。如果为 False,则按降序排序 (默认值)。bins
: 将索引粘贴在该值中的值放在这些“箱子”中,以计算出具有指定箱限制的每个值的出现次数。例如,如果值是样本,这是实现离散化的基本方法。这是适用于:类似 hist ,但返回的是对象而不是绘制。输出推荐使用 Categorical 数据类型。dropna
: 如果为 True,则不包括 NaN 值的计数在内(默认值)。 如果为 False,则计算 NaN 值的频率。该函数返回一个包含值计数的 Pandas Series,其中总计数为 Pandas Series 中的元素个数。
假设我们有以下数据,它以 Pandas DataFrame 的形式呈现:
import pandas as pd
data = {'语文': [88, 76, 92, 70, 89], '数学': [67, 90, 62, 98, 88], '英语': [76, 78, 82, 88, 84]}
df = pd.DataFrame(data, index=['张三', '李四', '王五', '赵六', '钱七'])
print(df)
执行上述代码,输出结果如下:
语文 数学 英语
张三 88 67 76
李四 76 90 78
王五 92 62 82
赵六 70 98 88
钱七 89 88 84
我们可以使用以下代码来计算 Pandas DataFrame 中每一列中各个数值的出现次数:
count = df['语文'].value_counts()
print(count)
执行上述代码,输出结果如下:
88 2
92 1
70 1
76 1
Name: 语文, dtype: int64
我们可以发现,输出结果包含每个值的出现次数以及该 Pandas Series 对象的索引(即语文成绩)。
如果我们希望按照出现次数降序(数量由高到低)排序,可以修改代码为:
count = df['语文'].value_counts(ascending=False)
print(count)
执行上述代码,输出结果如下:
88 2
70 1
76 1
92 1
Name: 语文, dtype: int64
这个示例说明如何计算 Pandas 列中特定值的出现次数,以及如何在计算过程中使用 value_counts() 函数的不同参数。
本文链接:http://task.lmcjl.com/news/17608.html