У меня есть рамка данных pandas с двумя столбцами. Мне нужно определить, находится ли строковое значение из одного столбца в строковом значении другого столбца. Второй столбец может быть "единственным значением", например "value1", или может быть несколько элементов, разделенных символом "/" в строке, например: "value1/value2/value3".
Для каждой строки мне нужно определить, присутствует ли строка в другой строке в той же строке, так что значение "value1" в "value1/value2/value3" будет равно True.
Мои попытки до сих пор не проверяются внутри каждой строки, и просто посмотрите, есть ли первая строка столбца во всех столбцах 2 строк.
Вот пример:
import pandas as pd
df = pd.DataFrame({'a':['a','b','c','d','e'],
'b':['a/b','c/d','c/a','a/b','e']})
df['a'].isin(df['b'])
Ожидаемый результат:
True
False
True
False
True
[a in b for a, b in zip(df.a, df.b)]
[True, False, True, False, True]
df.assign(In=[a in b for a, b in zip(df.a, df.b)])
a b In
0 a a/b True
1 b c/d False
2 c c/a True
3 d a/b False
4 e e True
from numpy.core.defchararray import find
a, b = df.values.astype(str).T
find(b, a) >= 0
array([ True, False, True, False, True])
df.assign(In=find(b, a) >= 0)
a b In
0 a a/b True
1 b c/d False
2 c c/a True
3 d a/b False
4 e e True