#python #pandas #dataframe #indexing
#питон #панды #фрейм данных #индексирование
Вопрос:
У меня есть следующий фрейм данных:
df = pd.DataFrame({'color': ['Yellow', 'Green', 'Red', 'Orange'], 'weight': [0.5, 4, 1, 10]}, index = ['Banana','Melon','Apple','Pumpkin'])
который выглядит так:
Banana Yellow 0.5
Melon Green 4.0
Apple Red 1.0
Pumpkin Orange 10.0
То, что я пытаюсь сделать, это получить доступ к целочисленным местоположениям подмножества «Банан», «Дыня», «Яблоко», «Тыква». Я знаю, что pandas.index.get_loc — это способ сделать это для одного элемента индекса. Например: df.index.get_loc('Apple')
возвращает 2. Однако я хотел бы сделать это для нескольких элементов одновременно. Я попробовал, среди прочего, df.index.get_loc(‘Apple’,’Pumpkin’), надеясь получить список [2,3], но это выдало следующую ошибку: ValueError: Invalid fill method. Expecting pad (ffill), backfill (bfill) or nearest. Got pumpkin
Есть ли функция, которая позволит мне получить несколько целых местоположений одновременно?
Ответ №1:
Попробуйте, с get_indexer
помощью которого принять список, подобный вводу
df.index.get_indexer(['Apple','Pumpkin'])
Out[104]: array([2, 3], dtype=int32)
Комментарии:
1. Это именно то, что я искал! Спасибо!