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