gpt4 book ai didi

python - 在 Pandas 中将行组合到 'others'

转载 作者:太空狗 更新时间:2023-10-30 00:59:15 24 4
gpt4 key购买 nike

我有一个像这样的 Pandas 数据框:

  character  count
0 a 104
1 b 30
2 c 210
3 d 40
4 e 189
5 f 20
6 g 10

我只想在数据框中包含前 3 个字符,其余字符组合为 others 因此表格变为:

  character  count
0 c 210
1 e 189
2 a 104
3 others 100

我怎样才能做到这一点?

谢谢。

最佳答案

我们可以使用Series.nlargest()方法:

In [31]: new = df.nlargest(3, columns='count')

In [32]: new = pd.concat(
...: [new,
...: pd.DataFrame({'character':['others'],
...: 'count':df.drop(new.index)['count'].sum()})
...: ], ignore_index=True)
...:

In [33]: new
Out[33]:
character count
0 c 210
1 e 189
2 a 104
3 others 60

或少一些惯用的解决方案:

In [16]: new = df.nlargest(3, columns='count')

In [17]: new.loc[len(new)] = ['others', df.drop(new.index)['count'].sum()]

In [18]: new
Out[18]:
character count
2 c 210
4 e 189
0 a 104
3 others 100

关于python - 在 Pandas 中将行组合到 'others',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43539559/

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