如何在 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

我只想给每个人留下最低限度的分数。


例如:如果杰克多次获得最低成绩“ 4 ”,我需要删除杰克获得其他成绩的其他行并保留他获得“ 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

您能告诉我应该如何处理这个问题吗?


摇曳的蔷薇
浏览 172回答 2
2回答

回首忆惘然

df.groupby('name').apply(lambda x: x[x['mark'] == x['mark'].min()])您可以按名称分组,并对每个组应用过滤器以匹配组的最小值。

12345678_0001

我会尝试与transformdf_new = df[df['mark']==df.groupby('name')['mark'].transform('min')].copy()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python