过滤 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 中的数据帧:使用条件列表 的相关文章

随机推荐

  • 如何使用 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 有什么方法可以同时过滤两列吗 我天真地尝试将数据帧限制为两列 但我对等式第二部