如何通过pandas获取多列组的最大值?

ssi*_*ral 2 python group-by pandas

我试图根据groupby的另一列获取最大值的行,我试图遵循这里给出的解决方案Python:使用groupby获取具有最大值的行,但是当你申请时它不起作用

annotations.groupby(['bookid','conceptid'], sort=False)['weight'].max()
Run Code Online (Sandbox Code Playgroud)

我明白了

bookid    conceptid
12345678  3942     0.137271
          10673    0.172345
          1002     0.125136
34567819  44407    1.370921
          5111     0.104729
          6160     0.114766
          200      0.151629
          3504     0.152793
Run Code Online (Sandbox Code Playgroud)

但是我想只获得权重最高的行,例如:

bookid    conceptid
12345678  10673    0.172345
34567819  44407    1.370921
Run Code Online (Sandbox Code Playgroud)

我很感激任何帮助

use*_*356 5

如果你需要bookid和conceptid最大重量,试试这个

annotations.ix[annotations.groupby(['bookid'], sort=False)['weight'].idxmax()][['bookid', 'conceptid', 'weight']]
Run Code Online (Sandbox Code Playgroud)

注意:由于Pandas v0.20 ix已被弃用.请.loc改用.