pandas - как получить идентификаторы минимумов на глубоком уровне DataFrame с MultiIndex - PullRequest
0 голосов
/ 10 марта 2020

Вот мой тестовый набор данных с MultiIndex -

In [126]: sumdf
Out[126]:
                     sum
frame face lmark
0     NaN  NaN       0.0
30    0.0  1.0    1113.0
           2.0    1064.0
           3.0    1212.0
45    0.0  1.0    1084.0
           2.0    1133.0
           3.0    1181.0

Я могу получить индексы минимального значения всего набора данных с помощью -

In [127]: sumdf.idxmin()
Out[127]:
sum    (0, nan, nan)
dtype: object

, но как я могу определить индексы минимумов на уровне lmark?

ie. Я хочу получить что-то вроде -

(45, 0.0, 1.0) - minimum where lmark = 1.0
(30, 0.0, 2.0) - minimum where lmark = 2.0
(30, 0.0, 3.0) - minimum where lmark = 3.0

1 Ответ

1 голос
/ 10 марта 2020

IIU C, это idxmin с groupby:

df.groupby(level='lmark')['sum'].idxmin()

Выход:

lmark
1.0    (45, 0.0, 1.0)
2.0    (30, 0.0, 2.0)
3.0    (45, 0.0, 3.0)
Name: sum, dtype: object
...