У меня есть панды DataFrame:
>>> f = pd.DataFrame.from_dict({"r0":{"c0":1,"c1":2},("r",1):{"c0":3,"c1":4}},orient = "index")
c0 c1
r0 1 2
(r, 1) 3 4
Я могу получить 1-ю строку:
>>> list(f.loc["r0"].items())
[('c0', 1), ('c1', 2)]
но не второй ряд, потому что f.loc[("r",1)]
поднимает KeyError
.
полагаю, я смогу сделать
>>> list(f.loc[[("r",1)]].iloc[0].items())
[('c0', 3), ('c1', 4)]
но это невыразимо некрасиво.
Каков правильный путь?
ПС. Нет, я не хочу использовать здесь MultiIndex.
Попробуйте использовать поперечное сечение, чтобы получить значения из нескольких индексов.
list(f.xs(("r", 1)).items())
Хорошее решение. +1