返回

数据框中一列值出现频率统计:两种简单易用方法

python

统计数据框中一列中每个值的出现频率

在数据分析中,统计一列中每个值的出现频率是一个常见的任务。本文将介绍两种简单易用的方法来实现这一目的:使用 value_counts() 函数和使用 groupby()size() 函数。

使用 value_counts() 函数

value_counts() 函数是 Pandas 库中一个内置函数,用于统计数据框中一列中每个唯一值的出现频率。它返回一个 Series 对象,其中索引是唯一值,值是出现频率。

使用 value_counts() 函数非常简单:

import pandas as pd

df = pd.DataFrame({'category': ['cat a', 'cat b', 'cat a']})
value_counts = df['category'].value_counts()

print(value_counts)

输出结果为:

cat a    2
cat b    1

使用 groupby()size() 函数

另一种统计一列中每个值的出现频率的方法是使用 groupby()size() 函数。

groupby() 函数将数据框按指定列分组,返回一个 GroupBy 对象。size() 函数返回每个组的大小,即每个唯一值出现的频率。

使用 groupby()size() 函数也很简单:

import pandas as pd

df = pd.DataFrame({'category': ['cat a', 'cat b', 'cat a']})
grouped = df.groupby('category')
value_counts = grouped.size()

print(value_counts)

输出结果与使用 value_counts() 函数相同:

cat a    2
cat b    1

比较两种方法

value_counts() 函数和 groupby()size() 函数都可以有效地统计数据框中一列中每个值的出现频率。value_counts() 函数更加简洁,而 groupby()size() 函数提供了更细粒度的控制,例如可以根据多个列进行分组。

结论

本文介绍了两种简单有效的方法来统计数据框中一列中每个值的出现频率。无论你选择哪种方法,都可以轻松地获取有关数据分布的宝贵见解。

常见问题解答

1. 如何对一列中的重复值进行计数?

value_counts() 函数和 groupby()size() 函数都会自动对重复值进行计数。

2. 如何排除空值?

可以使用 dropna() 函数在进行计数之前排除空值。例如:

value_counts = df['category'].dropna().value_counts()

3. 如何对多个列进行计数?

使用 groupby() 函数可以对多个列进行计数。例如:

grouped = df.groupby(['category', 'color'])
value_counts = grouped.size()

4. 如何按升序或降序显示结果?

可以使用 sort_index() 函数对结果进行排序。例如:

value_counts = df['category'].value_counts().sort_index()
value_counts = df['category'].value_counts().sort_index(ascending=False)

5. 如何对结果进行可视化?

可以使用 plot() 函数对结果进行可视化。例如:

import matplotlib.pyplot as plt

value_counts.plot.bar()
plt.show()