何时在Pandas中使用.count()和.value_counts()?

3

我正在学习pandas。 我不确定何时使用.count()函数,何时使用.value_counts()函数。

3个回答

4

count()函数用于计算给定轴上非NA/null观测值的数量。它也适用于非浮点型数据。

现在我们举个例子,创建一个名为df的数据帧。

df = pd.DataFrame({"A":[10, 8, 12, None, 5, 3],  
                   "B":[-1, None, 6, 4, None, 3], 
                   "C":["Shreyas", "Aman", "Apoorv", np.nan, "Kunal", "Ayush"]})

统计行轴上非NA值的数量。

df.count(axis = 0)

输出:

A    5
B    4
C    5
dtype: int64

在该列中查找非NA/null值的数量。
df.count(axis = 1) 

输出:

0    3
1    2
2    3
3    1
4    2
5    3
dtype: int64    

value_counts() 函数返回一个包含唯一值计数的 Series。生成的对象将按照数量降序排列,因此第一个元素是出现最频繁的元素。默认情况下排除 NA 值。

因此,在下面的示例中

s = pd.Series([3, 1, 2, 3, 4, np.nan]) 
s.value_counts()

输出结果为:
3.0    2
4.0    1
2.0    1
1.0    1
dtype: int64

2
< p > value_counts() 函数对数据进行聚合并计算每个唯一值的数量。你可以使用 groupby 实现相同的功能,它是 pandas 中用于聚合数据的更广泛的函数。

count() 函数只返回应用于列(系列)上的非 NaN/Null 值的数量。

"最初的回答"
df = pd.DataFrame({'Id':['A', 'B', 'B', 'C', 'D', 'E', 'F', 'F'],
                   'Value':[10, 20, 15, 5, 35, 20, 10, 25]})

print(df)
  Id  Value
0  A     10
1  B     20
2  B     15
3  C      5
4  D     35
5  E     20
6  F     10
7  F     25

# Value counts
df['Id'].value_counts()
F    2
B    2
C    1
A    1
D    1
E    1
Name: Id, dtype: int64

# Same operation but with groupby
df.groupby('Id')['Id'].count()
Id
A    1
B    2
C    1
D    1
E    1
F    2
Name: Id, dtype: int64

# Count()
df['Id'].count()
8

NaN值和count的示例:

最初的回答

print(df)
    Id  Value
0    A     10
1    B     20
2    B     15
3  NaN      5
4    D     35
5    E     20
6    F     10
7    F     25

df['Id'].count()
7

2
我认为更准确的说法是,Series上的计数函数返回Series中非NA/null观测值的数量(根据文档)。 - scient1st

1

count() 返回序列中非空值的总数。

value_counts() 返回一个系列,其中包含每个唯一的非空值出现的次数,按出现频率从高到低排序。

通常,示例是传达这一点的最佳方式:

ser = pd.Series(list('aaaabbbccdef'))
ser

>
0     a
1     a
2     a
3     a
4     b
5     b
6     b
7     c
8     c
9     d
10    e
11    f
dtype: object

ser.count()
>
12

ser.value_counts()
>
a    4
b    3
c    2
f    1
d    1
e    1
dtype: int64 

请注意,数据框具有count()方法,该方法返回数据框中每个列的count()(标量)值的系列。但是,数据框没有value_counts()方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接