#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])