python - 在任何列中搜索关键字的数据框并获取行

标签 python search pandas dataframe contains

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

df.apply(lambda x: x.str.contains('TEST')).any()

但因为不是所有的列值都是字符串类型所以会抛出错误:

AttributeError: ('Can only use .str accessor with string values

感谢任何帮助。

最佳答案

这里没有例子,但是怎么样:

df.apply(lambda 行: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)

关于python - 在任何列中搜索关键字的数据框并获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34354390/

相关文章:

Python - XML - LXML - 如何使用示例 XML 文件中的相同 XML 树结构来创建另一个 XML 文件

php - PHP/MySQL 搜索引擎的 session 问题

python - pandas 排序列遗漏值

python - 如何获取两个数据框列之间的交集项?

python - pandas python 标记跨行事务

python - 在 app-engine-patch 中导入 django 设置

mysql - 距离+关键词搜索方案

python - 如何使用 pandas DataFrame.style?

带参数的 Python Matplotlib 回调函数

search - Solr vs Elasticsearch用于嵌套文档