【发布时间】:2019-10-22 05:58:30
【问题描述】:
在 pd.Series 和 dtype=category 中,我有 253 个唯一值。其中一些经常发生,而另一些只发生一次或两次。现在我想只保留其中的前 10 名,并将其余的替换为 np.nan。
我已经到了top = df['cats'].value_counts().head(10) 来创建我想要保留的类别。但是现在呢?
类似于df['cats'].apply(cat_replace, args=top)?
def cat_replace(c, top):
if c in top:
return c
else:
return np.nan
但是,这对我来说看起来不太“熊猫”,我觉得有更好的方法。有更好的建议吗?
【问题讨论】:
标签: python pandas categorical-data