[英]Pandas - Sort by group membership numbers
当面对大量的群体时,由于线条太多且传说难以理解,您可能制作的任何图形都会变得无用。 在这些情况下,能够找到其中包含最多和最少信息的组非常有用。 但是,虽然x.size()
告诉您组成员资格(在使用groupby
),但我无法使用此信息重新排序数据框,因此您可以使用限制循环来仅绘制第一个图形x组。
您可以使用transform
来获取该列的计数和排序:
df = pd.DataFrame({'A': list('aabababc'), 'B': np.arange(8)})
df
Out:
A B
0 a 0
1 a 1
2 b 2
3 a 3
4 b 4
5 a 5
6 b 6
7 c 7
df['counts'] = df.groupby('A').transform('count')
df
Out:
A B counts
0 a 0 4
1 a 1 4
2 b 2 3
3 a 3 4
4 b 4 3
5 a 5 4
6 b 6 3
7 c 7 1
现在您可以按counts
排序:
df.sort_values('counts')
Out:
A B counts
7 c 7 1
2 b 2 3
4 b 4 3
6 b 6 3
0 a 0 4
1 a 1 4
3 a 3 4
5 a 5 4
在一行中:
df.assign(counts = df.groupby('A').transform('count')).sort_values('counts')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.