如何在Pandas系列中显示最频繁的值

  • Post category:Python

要在 Pandas 系列中显示最频繁的值,可以使用 value_counts() 方法来实现。该方法可以返回一个 pandas.Series 或 pandas.DataFrame,其中包含指定列内每个不同值的出现次数。

下面是一个示例:

假设我们有以下一些学生的数据:

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Helen', 'Ivy', 'John'],
        'Gender': ['F', 'M', 'M', 'M', 'F', 'M', 'F', 'F', 'F', 'M'],
        'Age': [18, 19, 19, 20, 21, 20, 18, 19, 20, 21]}
df = pd.DataFrame(data)
print(df)

输出:

       Name Gender  Age
0     Alice      F   18
1       Bob      M   19
2   Charlie      M   19
3     David      M   20
4       Eve      F   21
5     Frank      M   20
6     Grace      F   18
7     Helen      F   19
8       Ivy      F   20
9      John      M   21

现在,我们希望找出年龄列中最频繁出现的值。我们可以使用 value_counts() 方法来实现:

age_counts = df['Age'].value_counts()
print(age_counts)

输出:

20    3
19    3
21    2
18    2
Name: Age, dtype: int64

最常出现的值是 20 和 19,每个值都出现了三次。结果以 pandas.Series 的形式返回,可以按照需要进行进一步处理。

如果我们想显示出现次数最多的前两个值,可以使用 nlargest() 方法:

top_two = age_counts.nlargest(2)
print(top_two)

输出:

20    3
19    3
Name: Age, dtype: int64

这样,我们就得到了年龄列中出现次数前两名的值。

最后需要注意的是,value_counts() 方法可以用于任何 Pandas 系列,而不仅仅是 DataFrame 中的一列。如果希望查看整个 DataFrame 中所有值的出现次数,可以将 DataFrame 转换为 Series,然后使用 value_counts() 方法来实现。