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

如何按条件从数据框移除行:根据孔位通道数过滤记录

Pandas 按孔位通道数条件过滤行方案

直接用pandas处理即可,逻辑简单且运行效率高,不需要写循环逐行判断。

  • 核心处理逻辑:
    1. 按Well列分组,统计每个孔位下不重复的Channel总数量,把统计值匹配回原表的每一行
    2. 过滤掉符合两类规则的行:孔位共2个通道且当前行Channel值为2、孔位共3个通道且当前行Channel值为3
    3. 删除过程中临时添加的统计列,得到最终结果

可直接运行的代码如下:

import pandas as pd

# 此处为示例数据构造,实际使用时替换为你自己读入的数据表即可
df = pd.DataFrame({
    'X': [123]*10,
    'Y': [123]*10,
    'Channel': [1,2,1,2,1,2,3,1,2,3],
    'Well': ['B3','B3','B4','B4','B5','B5','B5','B6','B6','B6']
})

# 给每一行匹配对应孔位的通道总数
df['channel_cnt'] = df.groupby('Well')['Channel'].transform('nunique')

# 按规则执行过滤
result = df[
    ~(
        ((df['channel_cnt'] == 2) & (df['Channel'] == 2)) |
        ((df['channel_cnt'] == 3) & (df['Channel'] == 3))
    )
].drop(columns='channel_cnt')

运行后得到的过滤结果完全匹配需求:

XYChannelWell
1231231B3
1231231B4
1231231B5
1231232B5
1231231B6
1231232B6

注:如果后续存在其他通道数的孔位(比如4通道),当前逻辑不会改动这些孔位的行,有额外过滤规则直接在过滤条件里追加即可。

内容的提问来源于stack exchange,提问作者Meifong

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 18:00:53