过滤 pandas 中的数据帧:使用条件列表

2024-03-31

我有一个具有两个维度的 pandas 数据框:“col1”和“col2”

我可以使用以下方法过滤这两列的某些值:

df[ (df["col1"]=='foo') & (df["col2"]=='bar')]

有什么方法可以同时过滤两列吗?

我天真地尝试将数据帧限制为两列,但我对等式第二部分的最佳猜测不起作用:

df[df[["col1","col2"]]==['foo','bar']]

给我这个错误

ValueError: Invalid broadcasting comparison [['foo', 'bar']] with block values

我需要这样做,因为列的名称以及要设置条件的列数都会有所不同


据我所知,Pandas 中没有办法让你做你想做的事。然而,尽管以下解决方案可能不是我最漂亮的,但您可以按如下方式压缩一组并行列表:

cols = ['col1', 'col2']
conditions = ['foo', 'bar']

df[eval(" & ".join(["(df['{0}'] == '{1}')".format(col, cond) 
   for col, cond in zip(cols, conditions)]))]

字符串连接结果如下:

>>> " & ".join(["(df['{0}'] == '{1}')".format(col, cond) 
    for col, cond in zip(cols, conditions)])

"(df['col1'] == 'foo') & (df['col2'] == 'bar')"

然后你使用哪个eval有效地评估:

df[eval("(df['col1'] == 'foo') & (df['col2'] == 'bar')")]

例如:

df = pd.DataFrame({'col1': ['foo', 'bar, 'baz'], 'col2': ['bar', 'spam', 'ham']})

>>> df
  col1  col2
0  foo   bar
1  bar  spam
2  baz   ham

>>> df[eval(" & ".join(["(df['{0}'] == {1})".format(col, repr(cond)) 
            for col, cond in zip(cols, conditions)]))]
  col1 col2
0  foo  bar
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

过滤 pandas 中的数据帧:使用条件列表 的相关文章

  • 如何生成给定范围内的回文数列表?

    假设范围是 1 X 120 这是我尝试过的 gt gt gt def isPalindrome s check if a number is a Palindrome s str s return s s 1 gt gt gt def ge
  • Pycharm Python 控制台不打印输出

    我有一个从 Pycharm python 控制台调用的函数 但没有显示输出 In 2 def problem1 6 for i in range 1 101 2 print i end In 3 problem1 6 In 4 另一方面 像
  • 如何收集列表、字典等中重复计算的结果(或制作修改每个元素的列表的副本)?

    There are a great many existing Q A on Stack Overflow on this general theme but they are all either poor quality typical
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • 如何使用包含代码的“asyncio.sleep()”进行单元测试?

    我在编写 asyncio sleep 包含的单元测试时遇到问题 我要等待实际的睡眠时间吗 I used freezegun到嘲笑时间 当我尝试使用普通可调用对象运行测试时 这个库非常有用 但我找不到运行包含 asyncio sleep 的测
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject

随机推荐

  • 如何使用 Jest 和 Enzyme 测试 getDerivedStateFromProps

    我有这个简单的代码 它使用新的getDerivedStateFromProps生命周期 static getDerivedStateFromProps nextProps Props prevState State if nextProps
  • 如何在 twig 中显示 Unix 时间戳的格式化日期?

    我想通过对 Unix 时间戳应用过滤器来在 twig 中显示格式化日期 twig 有这样的功能吗 有一个过滤器叫date http twig sensiolabs org doc filters date html 在下面的例子中mydat
  • 通过 FileSystem 对象从文件系统读取

    为了列出类路径上特定目录的文件内容 我正在使用新的FileSystem and PathJava 7 的功能 在一次部署中 目录直接存储在文件系统上 在另一个部署中 它存储在 JAR 文件中 我的方法适用于 JAR 文件 我创建了一个Fil
  • Node.js 中的长循环:使用计时器产生结果?

    我在用着Node js http nodejs org 循环通过最终会是什么一个漂亮大阵的帖子 如果我正在做类似的事情客户端 JavaScript 我会使用计时器正如这里所解释的 http oreilly com server admini
  • 如何使用 Spark 从 .sql 转储中提取包含数据的表?

    我有大约四个 sql 独立转储 每个大约 20GB 我需要将它们转换为 Apache Spark 中的数据集 我尝试过使用 InnoDB 安装和制作本地数据库并导入转储 但这似乎太慢 花了大约 10 个小时 我直接使用将文件读入spark
  • 如何将数据从 Amazon SQS 流式传输到 Amazon S3 中的文件

    如何快速创建从 Amazon SQS 读取 json 数据并将其保存在 s3 存储桶中的 avro 文件 可能是其他格式 中的机制 并按 json 消息中给定字段的日期和值进行分区 你可以写一个AWS Lambda 函数由发送到 Amazo
  • 最低成本流程

    R 中是否有实现最小成本流算法的包 The igraph包似乎只有最大流量 通过graph maxflow 函数 这里或上面没有其他内容rseek org http www rseek org 看起来很有帮助 也许您可以返回所有流 然后按值
  • 以编程方式添加的用户控件不会创建其子控件

    我的项目中有一个用户控件 ascx 我在页面的 Page Load 事件处理程序中以编程方式将其添加到页面 如下所示 Controls Add new MyProject Controls ControlWidget Databind 当我
  • 如何允许传入连接到 VirtualBox 内的服务器?

    我配置了一个 NAT 以便在 VitualBox 中加载我最喜欢的 Linux 发行版时运行 这使得传出连接能够成功工作 如何允许传入此框的连接 例如 Web 流量 IP 地址是 10 0 2 15 来自我的主机的 ping 请求导致超时
  • iOS 部署目标

    如果我在提交到应用程序商店时将应用程序的部署目标设置为 iOS 4 2 则使用 iOS 3 2 或低于 4 2 的任何版本 的用户是否能够下载并安装该应用程序 并且该应用程序将无法运行或无法运行下载并安装应用程序本身 Thanks 他们将无
  • 管理归档表单和结果页面的最佳方式

    在 Symfony 中管理过滤器页面和结果页面的最佳方式是什么 我有一个管理过滤器表单并执行查询的控制器 该查询的结果必须传入另一个控制器操作 结果必须显示在另一个控制器操作中 因为我使用了 knp paginator 如果我在过滤器表单的
  • Android ==> ant 和 proguard?

    我在混淆我的应用程序时收到以下错误 如何在 build xml 中定义输出 jar java Shrinking java java io IOException The output jar is empty Did you specif
  • 使用 R 提取多条推文中的主题标签

    我迫切需要一个从 R 中的集体推文中提取主题标签的解决方案 例如 1 1 RddzAlejandra RT NiallOfficial What a day for johnJoeNevin Sooo proud t have been t
  • 后台附件:已修复在 iOS 上不起作用

    我正在尝试找到解决 iOS 设备上固定背景问题的方法 我宁愿不必重新设计这个网站的所有内容 我希望一些 CSS 更改可以解决它 This https i stack imgur com Yxa22 jpg该网站在 iPhone 上的外观是这
  • Ionic2,如何将自定义插件(appsee 或 uxcam)导入到 Ionic App 中

    我正在尝试使用Appsee https www appsee com docs ios ionic or UXcam https uxcam com docs 我尝试像下面这样导入 但没有成功 从 ionic native appsee 导
  • 如何使用@agm-core在有角度的谷歌地图上绘制多边形?

    在我的应用程序中 我使用 Angular Google Maps AGM 来构建地图 如何在其上绘制多边形 我按照中描述的解决方案进行操作https stackblitz com edit agm polygon https stackbl
  • 关于在 MVVM 中绑定 Listbox.SelectedItem 的说明

    我有一个ListBox在我的用户控件之一中 我想获得SelectedItem 在 ViewModel 中使用 这ListBox由 组成TextBlocks 这个问题 https stackoverflow com questions 138
  • 无法使用灵活类型 plt.hist 执行归约

    我有一个包含数千个元素及其各自频率的数据集 我需要绘制出现次数最多的 10 个元素的直方图 我做了 top words Counter my data most common top words 10 top words 10 plt hi
  • 使用 SwiftyJSON 解析 JSON 时遇到问题

    我是 swift 新手 我正在尝试解析从我拥有的私有 API 检索的一些简单的 JSON 数据 我正在使用 SwiftJSON 库 无论我做什么 我都无法将来自 JSON 响应的 video upload id 值分配给变量 videoUp
  • 过滤 pandas 中的数据帧:使用条件列表

    我有一个具有两个维度的 pandas 数据框 col1 和 col2 我可以使用以下方法过滤这两列的某些值 df df col1 foo df col2 bar 有什么方法可以同时过滤两列吗 我天真地尝试将数据帧限制为两列 但我对等式第二部