Python 熊猫中的value\u count方法为什么返回零计数?

Python 熊猫中的value\u count方法为什么返回零计数?,python,pandas,Python,Pandas,我有一个数据框,它存储一个高中生注册的学院 School Student_id A 111 A 112 B 223 我正在使用value_counts()函数查看独特学院的列表以及每个学院的注册学生人数。然而,该列表包含了相当多的0个学院。为什么可能呢?整个价值计算概念不是建立在学校必须出现在数据集中才能计算的事实上吗?我错过了什么 数据类型为string 代码: 如果列是分类的,是否可能,因

我有一个数据框,它存储一个高中生注册的学院

 School     Student_id 
   A             111
   A             112
   B             223
我正在使用value_counts()函数查看独特学院的列表以及每个学院的注册学生人数。然而,该列表包含了相当多的0个学院。为什么可能呢?整个价值计算概念不是建立在学校必须出现在数据集中才能计算的事实上吗?我错过了什么

数据类型为string

代码:


如果列是分类的,是否可能,因为缺少的类别被添加到
0
-检查:


什么是
df.dtypes
?请参阅更新……对于那些否决投票的人,请解释。在应用值计数和如何应用值之后,是否可以添加代码段counts@YanSong-我认为
str
dtype不存在,只有
object
。但如果不是像我的答案中那样的分类数据类型,那么它真的很有趣。可以解释更多吗?因为若某个值不在列中,则无法对其进行计数(例外情况为“分类”)。
ncee_sample_2005.clg.nunique() # Numer of unique colleges
49
ncee_sample_2005.clg.value_counts() # Visually check the college list
哈尔滨工业大学           9
吉林大学                 7
哈尔滨工程大学           7
浙江大学城市学院          0
浙江大学                 0
print (df['Student_id'].dtype)
category

print (df['Student_id'])
0    111
1    112
2    223
Name: Student_id, dtype: category
Categories (4, int64): [111, 112, 223, 100]

s = df['Student_id'].value_counts()
print (s)
223    1
112    1
111    1
100    0
Name: Student_id, dtype: int64