Получите одну строку в DataFrame, индексированном кортежем

У меня есть панды 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.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте использовать поперечное сечение, чтобы получить значения из нескольких индексов.

list(f.xs(("r", 1)).items())

Хорошее решение. +1

Scott Boston 31.07.2024 23:14

Другие вопросы по теме