Как индексировать панды DataFrame с помощью списка индексов?

1

У меня есть dataframe, как belows.

df
   a  b  c
w  5  3  3
x  4  7  6
y  6  2  5
z  2  6  2

И у меня есть список, как belows.

a
[['w', 'x', 'w'], 
['x', 'y', 'y']]

Как я могу получить результаты, подобные

[[5,7,3],
[4,2,5]]

Если единственный способ - использовать цикл for, который является самым быстрым способом?

Теги:
pandas
dataframe
indexing

2 ответа

4
Лучший ответ

Я думаю, что цикл должен быть достаточно быстрым

[[df.loc[z,y] for z,y in zip(x,df.columns)] for x in l ]
Out[981]: [[5, 7, 3], [4, 2, 5]]
  • 1
    df.at вместо этого.
  • 1
    Спасибо тебе большое. Я использую версию df.at.
2

Предполагая, что длина подписок всегда совпадает с длиной столбцов

[[*df.lookup(i, df.columns)] for i in a]

[[5, 7, 3], [4, 2, 5]]
  • 0
    Большое спасибо. df.at определенно быстрее чем df.loc

Ещё вопросы

Сообщество Overcoder
Наверх
Меню