python - 如何在 Pandas DataFrame 中只保留最小值
问题描述
祝大家有美好的一天!我需要你的帮助。
我有一个像这样的数据框:
df.sort_values('date')
name date mark
0 Jack 2019-03 4
1 Michael 2019-03 6
2 John 2019-03 9
3 Michael 2019-03 2
4 Jerry 2019-03 4
5 Jack 2019-03 5
6 John 2019-03 3
7 Jerry 2019-03 4
...
857 Jerry 2019-08 5
858 John 2019-08 7
859 Jack 2019-08 4
860 Michael 2019-08 6
860 Michael 2019-08 7
我只想为每个人留下最低分数。
例如:如果 Jack多次获得最低成绩“ 4 ”,我需要删除 Jack 获得其他成绩的其他行,并保留他获得“ 4 ”的行。同样的逻辑也应该适用于其他人。这是我想要的 DataFrame 的示例:
df.sort_values('date')
name date mark
0 Jack 2019-03 4
3 Michael 2019-03 6
4 Jerry 2019-03 4
6 John 2019-03 3
7 Jerry 2019-03 4
...
859 Jack 2019-08 4
860 Michael 2019-08 6
你能告诉我我应该如何处理这个问题吗?
解决方案
df.groupby('name').apply(lambda x: x[x['mark'] == x['mark'].min()])
您可以按名称分组,并对每个组应用过滤器以匹配最少的组。
推荐阅读
- java - Spring Cloud Dataflow Local Using dockerized Task
- sql - Access 365 - 没有基于伪造密钥的重复项
- jenkins - 你如何在 CI 中安装 chrome for cypress
- linux - 在启动时运行 Google Assistant SDK (Raspbian)
- python - 如何从两个给定点创建一条无限线以与 Shapely 中的其他几何对象相交?
- javascript - 第一次打开子菜单第二次点击转到页面
- python - 遍历 pandas 数据框列以比较结果
- java - Spring security oauth2 客户端 - 重定向太多
- ios - 检测ios wkwebview资源加载失败
- c# - 翻转角色时,角色武器的旋转会向后