我正在学习熊猫。我不知道何时使用.count()
功能以及何时使用.value_counts()
。
value_counts()
汇总数据并计算每个唯一值。你可以通过使用groupby
来实现同样的目标,count()
是一个更广泛的函数来聚合pandas中的数据。
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 / Null值的数量。
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
的示例:
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"]})
count()用于计算给定轴上非NA / null观测值的数量。它也适用于非浮动类型的数据。
现在作为示例创建一个数据帧df
df.count(axis = 0)
找到行轴上的非NA值的计数。
A 5
B 4
C 5
dtype: int64
输出:
df.count(axis = 1)
找到列中非NA / null值的数量。
0 3
1 2
2 3
3 1
4 2
5 3
dtype: int64
输出:
s = pd.Series([3, 1, 2, 3, 4, np.nan])
s.value_counts()
value_counts()函数返回包含唯一值计数的Series。生成的对象将按降序排列,以便第一个元素是最常出现的元素。默认情况下排除NA值。
因此,对于下面显示的示例
3.0 2
4.0 1
2.0 1
1.0 1
dtype: int64
输出将是:
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()
方法,该方法为df中的每列返回一系列value_counts()
(标量)值。但是,数据帧没有qazxswpoi方法。