В 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
Это, однако, не выглядит для меня слишком «пандами», и я чувствую, что есть лучший способ. Есть лучшие предложения?