python - 如何在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”
解决方案
我建议不要这样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)]
推荐阅读
- xslt - 如何在 XPATH 2.0 中使用“<<”运算符?
- r - 如果满足条件,如何创建新列?
- twig - 将 Craft 更新到 3.2.1 后无法从单个条目获取资产
- laravel - Laravel如何在我使用JWT身份验证时自定义用户表
- php - 红绿灯系统行为——黑客等级代码挑战
- windows - Hyper-v 通过将未识别的局域网设为默认值来禁用我的 wifi 网络
- ionic-framework - 如何为 android 和 ios 以外的操作系统构建 ionic 应用程序
- mysql - 使用一个单一查询从四个表中获取数据
- python - 无法从 Visual Studio Code 激活环境
- scala - 使用动态/具体类型初始化类型变量