我有一个83k行的数据框和一列" Text"我必须搜索约200个面具的文本。有没有办法将列传递给.str.contains()? 我能够这样做:
start = time.time()
[a["Text"].str.contains(m).sum() for m in \
b["mask"].values]
print time.time() - start
但是它取得34.013s。有没有更快的方法?
编辑:
b["mask"]
看起来像:
' PR347856 | P5478'
' BS7623 | B5763'
我希望每个面具的出现次数,所以我无法加入它们。
编辑:
a [" text"]包含大小约为3个字符串的字符串
答案 0 :(得分:2)
也许你可以对收容操作进行矢量化。
text_contains = a['Text'].str.contains
b['mask'].map(lambda m: text_contains(m).sum())