Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python—一个字符串列在另一个字符串列中吗?_Python_String_Pandas - Fatal编程技术网

Python—一个字符串列在另一个字符串列中吗?

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

我有一个有两列的数据框。我需要确定一列的字符串值是否在另一列的字符串值中。第二列可以是像“value1”这样的“单个值”,也可以是字符串中由“/”分隔的多个项目,如:“value1/value2/value3”

对于每一行,我需要确定该字符串是否存在于同一行的另一个字符串中,以便“value1/value2/value3”中的“value1”将计算为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