фрейм данных pandas выбирает значение списка из другого столбца

#python #pandas #dataframe

#питон #панды #фрейм данных #python #pandas

Вопрос:

Все! У меня есть фрейм данных pandas, подобный этому:

         A       B
   0    [1,2,3] 0
   1    [2,3,4] 1
  

как мы можем видеть, столбец A представляет собой список, а столбец B — значение индекса. Я хочу получить столбец C, который индексируется на B из A:

         A       B     C
   0    [1,2,3] 0     1
   1    [2,3,4] 1     3
  

Есть ли какой-нибудь элегантный способ решить эту проблему? Спасибо!

Ответ №1:

Используйте понимание списка с индексацией:

 df['C'] = [x[y] for x, y in df[['A','B']].to_numpy()]
  

Или DataFrame.apply , но это должно быть медленнее, если большой фрейм данных:

 df['C'] = df.apply(lambda x: x.A[x.B], axis=1)
  

 print (df)
           A  B  C
0  [1, 2, 3]  0  1
1  [2, 3, 4]  1  3
  

Комментарии:

1. Отлично! Спасибо!