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

par*_*ent 6 python numpy multi-index dataframe pandas

我有一个这种格式的数据框:

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
Run Code Online (Sandbox Code Playgroud)

ab是索引,x是值。

我想行1 9 732 5 34,换句话说,该级别的最后一排。

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

jez*_*ael 5

你可以用groupbylast

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

如果ab是 级别MultiIndex,首先调用reset_index

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