繁体   English   中英

如何在 for 循环中按组计数的递减顺序访问 pandas groupby 组?

[英]How to access pandas groupby groups in decreasing order of group count in a for loop?

我使用 pandas groupby 使用多列对我的数据进行分组。 现在,我想按组计数的递减顺序访问 for 循环中的组?

groups.size().sort_values(ascending = False).head(10)以组计数的递减顺序向我显示组,但我想在 for 循环中将每个组作为数据框(如 get_group() 返回)访问? 我怎么做?

这就是小组的样子

正如您的问题所暗示的,使用get_group

df = pd.DataFrame({'col': list('ABBCACBBC')})

# assign GroupBy object to variable
g = df.groupby('col', sort=False)

# get desired order of the groups
order = g['col'].size().sort_values(ascending=False).index

for x in order:
    print(f'# group {x}')
    print(g.get_group(x))

Output:

# group B
  col
1   B
2   B
6   B
7   B
# group C
  col
3   C
5   C
8   C
# group A
  col
0   A
4   A

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM