Pandas高效检查列中是否包含其他列中的字符串

2024-10-02 16:21:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图获取一个布尔索引,以确定一列是否包含另一列中同一行的字符串:

a      b
boop   beep bop
zorp   zorpfoo
zip    foo zip fa

在检查b列是否包含字符串时,我想得到:

^{pr2}$

现在我正在尝试这种方法,但速度很慢:

df.apply(lambda row: row['a'] in row['b'], axis=1)

有没有.str方法?在


Tags: 方法字符串dffoozipbeep速度fa
1条回答
网友
1楼 · 发布于 2024-10-02 16:21:09

在数据框应用(…,轴=1)非常慢!你应该避免使用它!在

from random import sample
from string import lowercase
from pandas import DataFrame

df = DataFrame({
    'a': map(lambda x: ''.join(sample(lowercase, 2)), range(100000)),
    'b': map(lambda x: ''.join(sample(lowercase, 5)), range(100000))
})

%time map(lambda (x, y): x in y, zip(df['a'], df['b']))

%time df.apply(lambda x: x[0] in x[1], axis=1)

相关问题 更多 >