我正在尝试从“初始数据框”中看到的视图中过滤以下数据框至“所需输出”中显示的内容
初始数据框
name group subject score class_size
Steve classrm_A maths 98.22 20
John classrm_A maths 76.87 30
Mary classrm_C science 77.25 26
Steve classrm_B science 65.28 32
Mary classrm_A english 86.01 16
John classrm_F science 96.55 25
返回具有唯一“名称”值的行,其中“分数”最大且“ class_size”等于或大于25。
所需的输出:
name group subject score class_size
Steve classrm_B science 65.28 32
Mary classrm_C science 77.25 26
John classrm_F science 96.55 25
到目前为止,这是我尝试过的。
min_class = df["class_size"] >= 25
df = df["min_class "]
df = df.groupby(['name']).max('score')
任何帮助将不胜感激。
在数据框中仅保留类大小大于25的行,然后按分数对数据框进行排序,然后删除“名称”列的所有重复项,如果重复则仅保留第一行。
df = df[df["class_size"] >= 25]
df = df.sort_values("score", ascending=False)
df = df.drop_duplicates(subset=["name"], keep="first")
输出:
Out[23]:
name group subject score class_size
5 John classrm_F science 96.55 25
2 Mary classrm_C science 77.25 26
3 Steve classrm_B science 65.28 32
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句