熊猫 - 按组成员编号排序

时间:2016-08-09 18:42:14

标签: python pandas

当面对大量群体时,由于线条太多且传说难以理解,您可能制作的任何图形都会变得无用。在这些情况下,能够找到其中包含最多和最少信息的组非常有用。但是,虽然x.size()告诉您组成员资格(在使用groupby之后),但我无法使用此信息重新排序数据框,因此您可以使用限制循环来只绘制前x个组。

1 个答案:

答案 0 :(得分:3)

您可以使用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')