我正在尝试计算pandas数据帧中的哪些字符串是给定字符串的子字符串。我不想使用列表或循环,但希望使用简洁的pandas-internal语法来实现此目的。
我无法让逻辑发挥作用。这就是我所拥有的:
import pandas
given = 'abcdef'
df = pandas.DataFrame(['abc', 'cde', 'aaa'],columns=['A'])
matches = df[(df.A in given)]
我想要的是df
的子帧,它只包含满足布尔条件的条目。我不能那么难......但我似乎无法做到这一点。
答案 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