祝大家有美好的一天!我需要你的帮助。我有一个像这样的数据框:df.sort_values('date') name date mark0 Jack 2019-03 41 Michael 2019-03 62 John 2019-03 93 Michael 2019-03 24 Jerry 2019-03 45 Jack 2019-03 56 John 2019-03 37 Jerry 2019-03 4...857 Jerry 2019-08 5858 John 2019-08 7859 Jack 2019-08 4860 Michael 2019-08 6860 Michael 2019-08 7我只想给每个人留下最低限度的分数。例如:如果杰克多次获得最低成绩“ 4 ”,我需要删除杰克获得其他成绩的其他行并保留他获得“ 4 ”的行。同样的逻辑也应该适用于其他人。这是我想要的 DataFrame 的示例:df.sort_values('date') name date mark0 Jack 2019-03 43 Michael 2019-03 64 Jerry 2019-03 46 John 2019-03 37 Jerry 2019-03 4...859 Jack 2019-08 4860 Michael 2019-08 6您能告诉我应该如何处理这个问题吗?
2 回答
![?](http://img1.sycdn.imooc.com/545866130001bfcb02200220-100-100.jpg)
回首忆惘然
TA贡献1847条经验 获得超11个赞
df.groupby('name').apply(lambda x: x[x['mark'] == x['mark'].min()])
您可以按名称分组,并对每个组应用过滤器以匹配组的最小值。
![?](http://img1.sycdn.imooc.com/54584f850001c0bc02200220-100-100.jpg)
12345678_0001
TA贡献1802条经验 获得超5个赞
我会尝试与transform
df_new = df[df['mark']==df.groupby('name')['mark'].transform('min')].copy()
添加回答
举报
0/150
提交
取消