Pandas 类别频率表中未显示 0 个计数

Not showing 0 counts in Pandas category frequency tables

我正在使用以下 Python 代码来分析分类变量的水平数,并删除超过 53 个水平的变量:

df.select_dtypes(['category']).apply(lambda x: len(set(x)))

我收到以下输出:

Out[1]:
favorite_drink         35
sex                     2
title                  12
status                  3
dtype: int64

我看到变量title有12级。我想分析那12个级别的值,所以我使用:

df['title'].value_counts()

并且我通过变量 title 的先前值的输出接收到成百上千行,这些值现在的频率为 0。为了说明目的,我只显示一个摘要:

Out [2]:
...
361xx                          0
460xx                          0
178xx                          0
607xx                          0
Name: title, dtype: int64

我想做的是,value_counts() 函数只显示频率高于 0 的值的频率。我知道 np.nan 值有参数 dropna = False,但是我还没有看到一个零频率。我相信这个话题 here 没有来自 pandas 的解决方案。

我的变量dtypes是:

df.dtypes

Out[3]:
favorite_drink            category
sex                       category
title                     category
status                    category

在此先感谢您对解决这一必要性的方法提供的帮助。

您可以简单地过滤您的系列:

c = df['title'].value_counts()
c = c[c > 0]