从 python 中的 groupby 对象中选择特定行

2024-04-14

id    marks  year 
1     18      2013
1     25      2012
3     16      2014
2     16      2013
1     19      2013
3     25      2013
2     18      2014

假设现在我通过 python 命令将以上内容分组到 id 上。
分组 = file.groupby(file.id)

我想获得一个新文件,其中仅包含每个组中最近一年中该组中最高年份的行。

请让我知道该命令,我正在尝试使用 apply 但它只会给出布尔表达式。我想要最近一年的整行。


我用这个拼凑起来:Python:使用groupby获取组中具有最大值的行 https://stackoverflow.com/questions/15705630/python-how-can-i-get-the-row-which-has-the-max-value-in-goups-making-groupby

所以基本上我们可以按“id”列进行分组,然后调用transform在“年份”列上创建一个布尔索引,其中年份与每个“id”的最大年份值匹配:

In [103]:

df[df.groupby(['id'])['year'].transform(max) == df['year']]
Out[103]:
   id  marks  year
0   1     18  2013
2   3     16  2014
4   1     19  2013
6   2     18  2014
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 python 中的 groupby 对象中选择特定行 的相关文章

随机推荐