在具有pkg_resources
的{{1}}中,我有253个唯一值。其中一些经常发生,而另一些仅发生一次或两次。现在,我只想保留其中的前10名,然后将其余的替换为pd.Series
。
我已经dtype=category
创建了我想要保留的类别。但是现在?
与np.nan
相似吗?
top = df['cats'].value_counts().head(10)
但是对于我来说,这看起来不太像“熊猫”,我觉得有更好的方法。还有更好的建议吗?
答案 0 :(得分:2)
# Sample data.
df = pd.DataFrame(
{'cats': pd.Categorical(
list('abcdefghij') * 5
+ list('klmnopqrstuvwxyz'))}
)
top_n = 10
top_cats = df['cats'].value_counts().head(top_n).index.tolist()
df.loc[~df['cats'].isin(top_cats), 'cats'] = np.nan
答案 1 :(得分:0)
从
开始您可以考虑做类似的事情
top = set(df['cats'].value_counts().head(10))
df['cats'].apply(top.__contains__)