data.groupby(['batsman'])['runs'].value_counts() gives the following result;
如何找出哪个球员得分最多的是0,1,2,3?..
AB de Villiers 0 29
1 14
4 6
2 3
6 1
Abdur Razzak 0 13
1 5
2 1
Adam Gilchrist 0 47
1 38
4 17
2 9
6 7
3 1
Aftab Ahmed 1 51
...
Younis Khan 0 61
1 39
4 10
2 9
6 5
答案 0 :(得分:2)
我认为我实际上会分组运行,然后最频繁地使用:
In [11]: df = pd.DataFrame([['AB de Villiers', 0], ['AB de Villiers', 0], ['AB de Villiers', 1], ['Abdur Razzak', 0], ['Abdur Razzak', 1], ['Abdur Razzak', 1]], columns=['batsman', 'runs'])
In [12]: df
Out[12]:
batsman runs
0 AB de Villiers 0
1 AB de Villiers 0
2 AB de Villiers 1
3 Abdur Razzak 0
4 Abdur Razzak 1
5 Abdur Razzak 1
[6 rows x 2 columns]
In [13]: df.groupby(['runs']).apply(lambda x: x['batsman'].value_counts().index[0])
Out[13]:
runs
0 AB de Villiers
1 Abdur Razzak
dtype: object
可能会有一种更有效的方法来获得最多的效果,但这非常有效。