是否有一种方法可以在pandas中过滤字符串中包含的行

时间:2018-03-21 15:46:32

标签: python string pandas dataframe

有一种方法可以检查列中的字符串是否包含另一个字符串:

df["column"].str.contains("mystring")

但是我正在寻找相反的情况,列字符串要包含在另一个字符串中,而不执行apply函数,我猜这个函数比矢量化.contains慢:

df["column"].apply(lambda x: x in "mystring", axis=1)

使用数据更新:

mystring = "abc"
df = pd.DataFrame({"A": ["ab", "az"]})
df
    A
0   ab
1   az

我想只显示“ab”,因为它包含在mystring中。

2 个答案:

答案 0 :(得分:2)

只有一个选项(jpp有) - 迭代列表理解:

df[[r in mystring for r in df.A]]

    A
0  ab

或者,

pd.DataFrame([r for r in df.A if r in mystring], columns=['A'])

    A
0  ab

答案 1 :(得分:2)

pd.Series([i in mystring for i in df.A]) 

输出:

0     True
1    False
dtype: bool