代码之家  ›  专栏  ›  技术社区  ›  Nate Thompson

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

  •  1
  • Nate Thompson  · 技术社区  · 6 年前

    对于每一行,我需要确定该字符串是否存在于同一行的另一个字符串中,以便“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
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   piRSquared    6 年前

    理解力

    [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