Я хочу сравнить две серии строк, чтобы найти, если одна содержит другую поэлементно.
Сначала я попробовал применить, но это медленно:
cols = ['s1','s2']
list_of_series = [pd.Series(['one','sdf'],index=cols), pd.Series(['two','x y two'],index=cols)]
df = pd.DataFrame(list_of_series, columns=cols)
df
s1 s2
0 one sdf
1 two x y two
df.apply(lambda row: row['s1'] in row['s2'], axis=1)
0 False
1 True
dtype: bool
Кажетсяработать со следующим кодом:
x=np.array(['one','two'])
y=np.array(['sdf','x y two'])
np.char.find(y,x)
array([-1, 4])
, но если у меня есть фрейм данных, я получаю сообщение об ошибке:
np.char.find(df.s2.values,df.s1.values)
TypeError: string operation on non-string array
Может кто-нибудь посоветовать решение?