Учитывая фрейм данных
d = {'col1': [['how', 'are', 'you'], ['im', 'fine', 'thanks'], ['you', 'know'], [np.nan]],
'col2': [['tell', 'how', 'me', 'you'], ['who', 'cares'], ['know', 'this', 'padewan'], ['who', 'are', 'you']]
df = pd.DataFrame(data=d)
Я хочу создать третий столбец col3
, который представляет собой любой элемент в списке в col2
, который содержится в списке в соответствующей строке в списке в col1
, в противном случае np.nan
.
Он должен будет принимать любые совпадающие элементы.
В этом случае col3
будет:
col1 col2 col3
0 ['how', 'are', 'you'] ['tell', 'how, 'me', 'you'] ['how', 'you']
1 ['im', 'fine', 'thanks'] ['who', 'cares'] [np.nan]
2 ['you', 'know'] ['know', 'this', 'padewan'] ['know']
3 [np.nan] ['who', 'are', 'you'] [np.nan]
Я попробовал
df['col3'] = [c in l for c, l in zip(df['col1'], df['col2'])]
, который вообще не работает, поэтому любые идеи будут очень полезны.