获取多索引中某个级别的最后一个元素

人气:55 发布:2023-01-03 标签: python pandas numpy dataframe multi-index

问题描述

我有一个以下格式的数据帧:

a   b   x
1   1   31
1   2   1
1   3   42
1   4   423
1   5   42
1   6   3
1   7   44
1   8   65437
1   9   73
2   1   5656
2   2   7
2   3   5
2   4   5
2   5   34

ab是索引,x是值。

我要获取1 9 732 5 34行,即该级别的最后一行。

我已经摆弄.loc.iloc.xs一个小时了,但我无法让它工作。我该怎么做?

推荐答案

您可以使用groupbylast

print (df.groupby('a', as_index=False).last())
   a  b   x
0  1  9  73
1  2  5  34

如果abMultiIndex级别,则第一次调用reset_index

print (df.reset_index().groupby('a', as_index=False).last())
   a  b   x
0  1  9  73
1  2  5  34

16