按元素检查字符串是否存在

E. *_*mer 6 python string pandas

我正在寻找一种方法来检查一个字符串是否可以在另一个字符串中找到。str.contains仅采用固定字符串模式作为参数,我宁愿在两个字符串列之间进行按元素比较。

import pandas as pd

df = pd.DataFrame({'long': ['sometext', 'someothertext', 'evenmoretext'],
               'short': ['some', 'other', 'stuff']})


# This fails:
df['short_in_long'] = df['long'].str.contains(df['short'])
Run Code Online (Sandbox Code Playgroud)

预期输出:

[True, True, False]
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 6

使用列表理解zip

df['short_in_long'] = [b in a for a, b in zip(df['long'], df['short'])]

print (df)
            long  short  short_in_long
0       sometext   some           True
1  someothertext  other           True
2   evenmoretext  stuff          False
Run Code Online (Sandbox Code Playgroud)