Pandas仅选择idxmin + 1(nth to last)值

时间:2018-04-26 19:55:17

标签: python pandas

如何在pandas中使用idxmin仅选择第n个到最后一个索引?

df = data.loc[data.groupby("key1")["key2"].idxmin()] 

当然只给我最后一个价值。

拥有以下格式的数据框:

key1       key2
 a           1
 a           2
 a           3
 b           4
 b           5
 c           6

期望的结果应该是:

key1       key2
 a           2
 b           5

1 个答案:

答案 0 :(得分:1)

你可以这样做:

df[df.groupby('key1')['key2'].transform(pd.DataFrame.rank) == 2]

OR

df[df.groupby('key1')['key2'].apply(lambda x: x.rank() == 2)]

输出:

  key1  key2
1    a     2
4    b     5