检查字符串是否包含另一个列值

问题描述 投票:0回答:1

我有一个数据框,想检查一个列值是否包含另一个列值。

    name1   name2
0   aa      aab
1   xyz     x

以下不起作用

df = df.assign(name1_contains_name2=df.name1.str.contains(df.name2),
            name2_contains_name1=df.name2.str.contains(df.name1))

但我想获得以下数据框

    name1   name2   name1_contains_name2    name2_contains_name1
0   aa      aab     False                   True
1   xyz     x       True                    False

我该怎么写?

python pandas string dataframe contains
1个回答
0
投票

用途:

z = list(zip(df.name1, df.name2))
df = df.assign(name1_contains_name2=[b in a for a, b in z],
               name2_contains_name1=[a in b for a, b in z])
print (df)
  name1 name2  name1_contains_name2  name2_contains_name1
0    aa   aab                 False                  True
1   xyz     x                  True                 False
© www.soinside.com 2019 - 2024. All rights reserved.