Возможное решение - использовать метод .max()
для индекса. В этом случае он вернет значения на каждом уровне MultiIndex, которые могут ИЛИ не соответствовать желаемому. Также следует отметить, что .max()
будет возвращать значения лексикографически, а это означает, что для каждого уровня иерархии он найдет наивысшее лексикографическое значение на уровне, а затем будет искать следующие наивысшие значения на следующем уровне для этой первой группы.
>>> tuples = [('bar', 1),
('bar', 10),
('baz', 11),
('baz', 14),
('foo', 15),
('foo', 16),
('qux', 17),
('qux', 5844)]
>>> index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
>>> index.max()
('qux', 5844)
В этом случае qux
был лексикографически самым высоким, и в пределах следующего уровня MultiIndex (17
и 5844
), 5844
было самым высоким значением в группе qux
.
Если вам нужно настроить подход, вы можете выбрать для определенного уровня c MultiIndex следующим образом. В этом случае, поскольку целые числа находятся на уровне, обозначенном индексом 1
, мы можем использовать этот подход:
>>> index.levels[1].max()
5844
Если ваши целые числа находятся на другом уровне, вы просто меняете индекс на уровнях кронштейн.