我有一个按两列(id和Name)排序的数据框:
ix id Value Name
39 837 Value1 Name1
40 838 Value2 Name1
16 811 Value3 Name2
26 821 Value4 Name2
27 822 Value5 Name2
10 805 Value6 Name3
11 806 Value7 Name3
我想返回一个数据框,其中包含每个名称的最后两个唯一值,例如
ix id Value Name
39 837 Value1 Name1
40 838 Value2 Name1
26 821 Value4 Name2
27 822 Value5 Name2
10 805 Value6 Name3
11 806 Value7 Name3
每个名称可能有多个“值”,而不仅仅是此示例中给出的值。 任何想法如何做到这一点?
答案 0 :(得分:0)
这应该这样做
df.groupby('Name')\
.apply(lambda x: x.drop_duplicates()\ # find unique elements
.tail(2))\ # last two
.reset_index(level=0, drop=True) # remove groupby index