У меня есть набор данных, который существует из столбца с комбинациями frozenset.
Данные
import pandas as pd
import numpy as np
d = {'ID1': [frozenset(['a', 'b']), frozenset(['a','c']), frozenset(['c','d'])]}
df = pd.DataFrame(data=d)
Кроме того, у меня есть списокс буквами, и теперь я хотел бы иметь список с индексом строк в наборе данных, где появился элемент из списка.Итак, предположим следующий список:
lst = ['a', 'b']
indexSaver = []
Я могу обойти это с помощью цикла for, однако набор данных существует более 27 миллионов, поэтому я уверен, что это сэкономит мне время на решение этой проблемы..
for i in range(len(df)):
for item in df['ID1'].iloc[i]:
if item in lst:
indexSaver.append(i)
Желаемый результат: В этом случае элемент a и элемент b появились в строке 0 (дважды) и в строке 1. Требуемый результат здесь, чембыло бы [0, 0, 1] , сказав, с выходом [0,1] Я мог бы работать также.
Любой более элегантная идея