gpt4 book ai didi

python - 取 nlargest 5 并对 pandas 中的其余部分求和/计数

转载 作者:太空宇宙 更新时间:2023-11-04 02:07:30 24 4
gpt4 key购买 nike

我的数据集如下所示:

ID   |    country
1 | USA
2 | USA
3 | Zimbabwe
4 | Germany

我执行以下操作以获取第一个国家的名称及其相应的值。所以在我的例子中是:

df.groupby(['country']).country.value_counts().nlargest(5).index[0]
df.groupby(['country']).country.value_counts().nlargest(5)[0]
df.groupby(['country']).country.value_counts().nlargest(5).index[1]
df.groupby(['country']).country.value_counts().nlargest(5)[1]
etc.

输出将是:

(USA), 388
(DEU), 245
etc.

然后我重复它,直到我得到数据集中的前 5 个国家/地区。

但是,我怎样才能得到一个“其他”或“其他”列,将所有其他国家/地区集中在一起。所以像下面这样的国家在我的数据集中并不常见:

Zimbabwe, Irak, Malaysia, Kenya, Australia etc.

所以我想要第六个值,输出如下所示:

(其他), 3728

我怎样才能在 pandas 中实现这一点?

最佳答案

使用:

N = 5
#get counts of column
s = df.country.value_counts()
#select top 5 values
out = s.iloc[:N]
#add sum of another values
out.loc['Other'] = s.iloc[N:].sum()

最后如果需要 2 列 DataFrame:

df = out.reset_index()
df.columns=['country','count']

关于python - 取 nlargest 5 并对 pandas 中的其余部分求和/计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54327574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com