You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用groupby.filter多条件过滤分组并移除不符合条件的组

使用groupby.filter筛选符合条件的位置分组

背景与需求

  • 处理合并后的位置数据集,其中merged_df[26]对应盐度字段,merged_df[23]对应温度字段
  • 目标:移除所有不符合条件的lonlat分组,仅保留存在满足「盐度≥34.0 且 温度≤-1.0」数据的位置分组,用于后续图表绘制
  • 此前尝试:不按lonlat分组直接用双条件过滤,仅会移除单条不符合数据,无法实现整组移除的需求

初始代码问题

最初使用逻辑或(|)的代码无法达到预期效果:

group1 = merged_df.groupby("lonlat").filter(lambda x:  ((x[26] >= 34.0) | (x[23] <= -1.0)).any())

该代码会保留所有只要有一条数据满足「盐度≥34」或「温度≤-1」的分组,无法精准筛选出同时符合两个条件的分组,导致不符合需求的分组被保留。

修正后的解决方案

将条件中的逻辑或(|)替换为逻辑与(&),即可筛选出至少有一条数据同时满足盐度≥34.0和温度≤-1.0的分组:

group1 = merged_df.groupby("lonlat").filter(lambda x:  ((x[26] >= 34.0) & (x[23] <= -1.0)).any())

内容的提问来源于stack exchange,提问作者Maria Cristina Alvarez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 11:47:06