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]
我正在使用以下 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]