获取Dataframe中另一列值对应的前2个最高分数

2024-05-18 20:36:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我的df:

  parent child       score

0   O    Tel         0.294015
1   O    The         0.296218
2   O    Tri         0.306937
3   O    nal         0.290132
4   O    rap         0.298493

5   PV   Aer         0.297987
6   PV   Arc         0.277228
7   PV   Bro         0.301921
8   PV   CAS         0.286482

我想要:

0   O    Tri         0.306937
1   O    rap         0.298493
2   PV   Aer         0.297987
3   PV   Bro         0.301921

需要拿到带孩子家长的前2分, 不是多索引的。你知道吗


Tags: thechilddf孩子triparentscorebro
2条回答

使用tail

df.sort_values(['parent','score']).groupby('parent').tail(2)
Out[932]: 
  parent child     score
4      O   rap  0.298493
2      O   Tri  0.306937
5     PV   Aer  0.297987
7     PV   Bro  0.301921

这里有一行可以做到这一点-这也将考虑到父母只有一个孩子的情况。你知道吗

df.groupby('parent').apply(lambda df: df.sort_values('score', ascending=False).iloc[:2] if len(df) > 1 else df)

相关问题 更多 >

    热门问题