Есть два датафрейма
df1 = pd.DataFrame({'id': [24, 75, 32, 89]})
df2 = pd.DataFrame({'id': [4, 87, 145, 99, 175],
'lst': [[24, 56, 78], [24, 32, 89, 54, 127], [67], [78, 89, 34], [12, 45]]})
Как найти все строки в df2, чтобы значения df1['id] были в списках.
Решение через циклы - слишком медленно
df3 = pd.DataFrame()
for i in df2.itertuples():
for j in df1.itertuples():
if j[1] in i[2]:
df3 = df3.append({'id': i[1], 'lst': i[2]}, ignore_index=True)
Метод isin() в данном случае не работает
for j in df1.itertuples():
df3 = df2[df2['id'].isin(j[1])]
Нужен такой результат
id lst
0 4 [24, 56, 78]
1 87 [24, 32, 89, 54, 127]
2 99 [78, 89, 34]