Фильтровать ряд списка по другому списку

#python #filter

#python #Фильтр

Вопрос:

Я бы хотел отфильтровать серию списка по списку. Ниже я представил MWE:

 a = np.array([[0,1,2],[2,3,5]])
b = pd.Series(list(a))
 

Желаемый результат

 0 [0,1,2]
 

Я пытался

 b[b == [1, 2, 3]]
# and
b[b in [[1, 2, 3]]]
 

но появляется сообщение об ошибке ('Lengths must match to compare', (2,), (3,))

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

1. можете ли вы объяснить логику того, как вы получили желаемый результат?

2. @Pygirl У меня есть фрейм данных, и один столбец состоит из списков. Я хотел бы реализовать фильтр, получающий только элементы, определенные условием, в данном случае [1, 2, 3] .

Ответ №1:

Спасибо за ваше время! Я решил проблему из приведенного ниже кода:

 cond = [b[i]== [0, 1, 2] for i in range(b.shape[0])]
b.where(cond).dropna()
#output
0    [0, 1, 2]
dtype: object