📅  最后修改于: 2023-12-03 15:18:15.490000             🧑  作者: Mango
在数据分析和数据处理中,我们经常需要计算数据中每个值出现的频率,这时就可以使用 Pandas 库的 value_counts() 方法。
该方法可以返回一个 Pandas series,其中每个唯一值对应着它在原始 series 中出现的频率。
pandas.Series.value_counts(dropna=True, sort=True, ascending=False, normalize=False, bins=None,
drop_duplicates=True)
该方法的参数说明如下:
下面我们以一个例子来展示 value_counts() 方法的使用。
我们先创建一个包含一些数字的 Pandas series:
import pandas as pd
data = [1, 1, 2, 3, 3, 3]
s = pd.Series(data)
然后我们使用 value_counts() 方法计算每个值出现的频率:
value_counts = s.value_counts()
print(value_counts)
输出结果如下:
3 3
1 2
2 1
dtype: int64
我们可以看到,输出结果是一个 Pandas series,其中每个唯一值对应着它在原始 series 中出现的频率。例如,数字 3 在原始 series 中出现了 3 次,因此它对应的频率值为 3。数字 1 在原始 series 中出现了 2 次,因此它对应的频率值为 2。
如果我们想要按照频率值降序排序:
value_counts = s.value_counts(sort=True, ascending=False)
print(value_counts)
输出结果如下:
3 3
1 2
2 1
dtype: int64
现在,输出结果与之前相同,但是它们按照频率值降序排序。
如果我们想要以频率值的百分比形式返回结果:
value_counts = s.value_counts(normalize=True)
print(value_counts)
输出结果如下:
3 0.500000
1 0.333333
2 0.166667
dtype: float64
现在,输出结果是一个 Pandas series,其中每个唯一值对应着它在原始 series 中出现的频率的百分比。例如,数字 3 在原始 series 中出现了 3 次,占总数的 50%,因此它对应的频率值为 0.5。
Pandas 的 value_counts() 方法可以方便地计算数据中每个值出现的频率,并返回一个 Pandas series。该方法的灵活参数可以让我们对计算结果进行排序/升序等更多控制,十分实用。