【发布时间】:2019-06-15 01:56:48
【问题描述】:
我想根据一个字符串列的值是否是另一个字符串列中的值的子字符串来过滤DataFrame。
根据this 2 岁的帖子,这可以使用 apply 来完成,如下所示:
df = pd.DataFrame({'FNAME': ['Max', 'Tobi'], 'LNAME': ['Foo', 'Tobiwan']})
df.loc[ df.apply(lambda row: row.FNAME in row.LNAME, axis=1) ]
FNAME LNAME
1 Tobi Tobiwan
我想知道是否有一些内置的矢量化方法可以做到这一点?
【问题讨论】:
-
没有一种超级有效的方法可以做到这一点,因为
pandas字符串方法并不是特别快。您可能可以使用列表理解来提高性能:[x in y for x, y in zip(df.FNAME, df.LNAME)]
标签: python string pandas vectorization apply