Python—一个字符串列在另一个字符串列中吗?
我有一个有两列的数据框。我需要确定一列的字符串值是否在另一列的字符串值中。第二列可以是像“value1”这样的“单个值”,也可以是字符串中由“/”分隔的多个项目,如:“value1/value2/value3” 对于每一行,我需要确定该字符串是否存在于同一行的另一个字符串中,以便“value1/value2/value3”中的“value1”将计算为True 到目前为止,我的尝试未能在每一行中进行检查,只需查看第一列字符串是否存在于第2列的所有行中 以下是一个例子:Python—一个字符串列在另一个字符串列中吗?,python,string,pandas,Python,String,Pandas,我有一个有两列的数据框。我需要确定一列的字符串值是否在另一列的字符串值中。第二列可以是像“value1”这样的“单个值”,也可以是字符串中由“/”分隔的多个项目,如:“value1/value2/value3” 对于每一行,我需要确定该字符串是否存在于同一行的另一个字符串中,以便“value1/value2/value3”中的“value1”将计算为True 到目前为止,我的尝试未能在每一行中进行检查,只需查看第一列字符串是否存在于第2列的所有行中 以下是一个例子: import pandas
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