У меня есть список, который выглядит следующим образом:Итерация панд строк эффективно
lst = ['a','b','c']
и dataframe который выглядит следующим образом:
id col1
1 ['a','c']
2 ['b']
3 ['b', 'a']
Я ищу, чтобы создать новый столбец в dataframe который имеет длину пересечения 1-го и отдельных списков от col1
id col1 intersect
1 ['a','c'] 2
2 ['b'] 1
3 ['d', 'a'] 1
В настоящее время мой код выглядит так: это:
df['intersection'] = np.nan
for i, r in df.iterrows():
## If-Statement to deal with Nans in col1
if r['col1'] == r['col1']:
df['intersection'][i] = len(set(r['col1']).intersection(set(lst)))
Проблема заключается в том, что этот код очень много времени на моем наборе данных 200K строк и пересекающиеся со списком 200 элементов. Есть ли способ сделать это более эффективно?
Спасибо!
Зачем вам нужен, если заявление? Кажется, это всегда верно для меня? – Psidom
для проверки для nans. x == x вернет false, если x является наном. – eljusticiero67