我目前正在按照此处列出的说明来查找值,并且它可以工作。唯一的问题是我的数据框很大(5x3500行),我需要执行大约2000次搜索。每个人大约需要4秒钟,因此很明显,这加起来了,对我而言变得有点难以为继了。
Most concise way to select rows where any column contains a string in Pandas dataframe?
是否有比该方法更快的搜索包含字符串值的所有行的方法?
df[df.apply(lambda r: r.str.contains('b', case=False).any(), axis=1)]
答案 0 :(得分:4)
您可以测试速度
boolfilter=(np.char.find(df.values.ravel().astype(str),'b')!=-1).reshape(df.shape).any(1)
boolfilter
array([False, True, True])
newdf=df[boolfilter]
答案 1 :(得分:2)
一种微不足道的可能性是禁用正则表达式:
urlRoot
使用列表推导的另一种方法:
res = df[df.apply(lambda r: r.str.contains('b', case=False, regex=False).any(), axis=1)]