gpt4 book ai didi

python - 如何使用 Python Pandas 根据组中其他列的聚合来选择值?

转载 作者:太空宇宙 更新时间:2023-11-03 15:53:57 25 4
gpt4 key购买 nike

我的数据如下所示:

system    question    answer    grade    rank
sys1 q1 a1 A 5
sys1 q1 a1 B 10
sys2 q1 a1 C 1
sys2 q1 a1 D 11

我的目标是按问题和答案进行分组,取最好的成绩和排名,以及与最好成绩相关的系统。下面是我想要执行的示例:

>>df.groupby(['question', 'answer']).agg({'grade': np.min, 'rank': np.min, 'system': ???).reset_index()
question answer grade rank system
q1 a1 A 1 sys1

我得到了我想要的成绩和排名,因为我只需要最低限度。获得所需系统的最佳方式是什么?

最佳答案

我认为你可以使用sort_values先聚合last :

print (df)
system question answer grade rank
0 sys1 q1 a1 A 5
1 sys2 q1 a1 B 10
2 sys3 q1 a1 C 1
3 sys4 q1 a1 D 11

df = df.sort_values('grade')
.groupby(['question', 'answer'])
.agg({'grade': np.min, 'rank': np.min, 'system':'last'})
.reset_index()
print (df)
question answer system rank grade
0 q1 a1 sys4 1 A
<小时/>

我不确定,但也许需要首先:

df = df.sort_values('grade')
.groupby(['question', 'answer'])
.agg({'grade': np.min, 'rank': np.min, 'system':'first'})
.reset_index()
print (df)
question answer system rank grade
0 q1 a1 sys1 1 A

关于python - 如何使用 Python Pandas 根据组中其他列的聚合来选择值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40978472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com