首页 > 解决方案 > 如何在Python中过滤出具有特定字符串的多个列

问题描述

我是 python 新手,尤其是 pandas,所以我真的不知道自己在做什么。我有 10 列 100000 行和 4 个字母字符串。我需要过滤掉所有列/行中不包含“DDD”的行。

我试图用 iloc 和 loc 来做,但它不起作用:

import pandas as pd
df = pd.read_csv("data_3.csv", delimiter = '!')
df.iloc[:,10:20].str.contains('DDD', regex= False, na = False)
df.head()

它返回一个错误:“DataFrame”对象没有属性“str”

标签: pythonpandas

解决方案


我建议不要这样for循环:

df[df.apply(lambda x: x.str.contains('DDD')).all(axis=1)]

仅选择字符串列

df[df.select_dtypes(include='object').apply(lambda x: x.str.contains('DDD')).all(axis=1)]

只选择一些字符串列

selected_cols = ['A','B']
df[df[selected_cols].apply(lambda x: x.str.contains('DDD')).all(axis=1)]

推荐阅读