如何在pandas数据帧中对子串关系使用布尔索引?

时间:2015-10-02 16:39:54

标签: python pandas indexing

我正在尝试计算pandas数据帧中的哪些字符串是给定字符串的子字符串。我不想使用列表或循环,但希望使用简洁的pandas-internal语法来实现此目的。

我无法让逻辑发挥作用。这就是我所拥有的:

import pandas

given = 'abcdef'

df = pandas.DataFrame(['abc', 'cde', 'aaa'],columns=['A'])

matches = df[(df.A in given)]

我想要的是df的子帧,它只包含满足布尔条件的条目。我不能那么难......但我似乎无法做到这一点。

1 个答案:

答案 0 :(得分:1)

您可以使用Series.apply。示例 -

df[df['A'].apply(lambda x: x in given)]

演示 -

In [22]: df = pandas.DataFrame(['abc', 'cde', 'aaa'],columns=['A'])

In [23]: given = 'abcdef'

In [24]: df[df['A'].apply(lambda x: x in given)]
Out[24]:
     A
0  abc
1  cde