在数据帧中搜索任意列中的关键字并获取行

use*_*846 4 python search contains dataframe pandas

我有一个数据框,我希望通过逐一检查所有行中所有列中是否存在关键字来获取子集。这是片段:

df.apply(lambda x: x.str.contains('TEST')).any()
Run Code Online (Sandbox Code Playgroud)

但因为并非所有列值都是字符串类型,所以它会抛出错误:

AttributeError: ('只能使用带有字符串值的 .str 访问器

任何帮助表示赞赏。

8on*_*ne6 6

这里没有例子就盲目飞行,但是怎么样:

df.apply(lambda row: row.astype(str).str.contains('TEST').any(), axis=1)

因此,例如:

import numpy as np
import pandas as pd

np.random.seed(0)
df = pd.DataFrame(np.random.choice(['0.0', 'Hello', 'Goodbye'], (12, 3)))
df.apply(lambda row: row.astype(str).str.contains('Hello').any(), axis=1)
Run Code Online (Sandbox Code Playgroud)