Возвращает соответствующий элемент из списка во фрейме данных Pandas

#python #pandas

#python #pandas

Вопрос:

У меня есть список целых чисел (gtin) и фрейм данных pandas (df) с одним столбцом, содержащим список в каждой строке (df[‘gtins’])

Я хотел бы определить новый столбец во фрейме данных (df[‘gtin_match’]), который возвращает первый соответствующий элемент в списке фреймов данных в отдельный список.

Я попытался использовать приведенный ниже код с функцией apply и лямбда-функцией, но он возвращает список списка в df[‘gtins’].

Как я могу это исправить?

 gtin = [1234, 456, 2005, 91]

df['gtin_match'] = df['gtins'].apply(lambda x: [x for i in range(0, len(x)) if int(x[i]) in gtin])
  

введите описание изображения здесь

Ответ №1:

в вашем понимании, вы должны вернуть, x[i] поскольку x сам по себе является объектом list, и вы просто хотите вернуть int:

 df['gtin_match'] = df['gtins'].apply(lambda x: [x[i] for i in range(0, len(x)) if int(x[i]) in gtin])