首页 > 解决方案 > Pandas:获取每个用户的最后一个值,其中包含其他列中的某个值

问题描述

我有一个如下的数据框:

user        item      
A           1           
A           2          
A           2           
B           3           
B           4
B           4   

一般来说,我将如何返回这样的数据框:

user        item      
A           2          
A           2           
B           4
B           4

您在哪里为每个用户返回包含该用户最后一个项目值的行?

我在按用户分组后尝试了 .last() 方法,但它只会为 A 和 B 提供一个实例。

标签: pythonpandas

解决方案


在你的情况下使用transform

df[df.item==df.groupby('user').item.transform('last')]
Out[292]: 
  user  item
1    A     2
2    A     2
4    B     4
5    B     4

推荐阅读