Consider these series:

```py
>>> a = pd.Series('abc a abc c'.split())
>>> b = pd.Series('a abc abc a'.split())
>>> pd.concat((a, b), axis=1)
     0    1
0  abc    a
1    a  abc
2  abc  abc
3    c    a

>>> unknown_operation(a, b)
0 False
1 True
2 True
3 False

```

The desired logic is to determine if the string in the left column is a substring of the string in the right column. `pd.Series.str.contains` does not accept another Series, and `pd.Series.isin` checks if the value exists in the other series (not in the same row specifically). I'm interested to know if there's a vectorized solution (not using `.apply` or a loop), but it may be that there isn't one.
['https://Stackoverflow.com/questions/68944559', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/9918345/']
Let us try with `numpy` `defchararray` which is vectorized

```
from numpy.core.defchararray import find
find(df['1'].values.astype(str),df['0'].values.astype(str))!=-1
Out[740]: array([False,  True,  True, False])

```
IIUC,

```
df[1].str.split('', expand=True).eq(df[0], axis=0).any(axis=1) | df[1].eq(df[0])

```

Output:

```
0    False
1     True
2     True
3    False
dtype: bool

```