我使用以下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
我看到变量标题有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
提前感谢您对这种必要性的帮助。
答案 0 :(得分:1)
您只需过滤系列:
c = df['title'].value_counts()
c = c[c > 0]