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