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

如何使用pandas的.loc函数按条件保留指定SeqNumber的所有数据行

实现方案

首先假设你的原始DataFrame命名为df,先定义区间参数:

x_min = 3
x_max = 8
y_min = 4
y_max = 6

步骤1:提取符合条件的SeqNumber集合

筛选满足X在指定区间、Y在指定区间且Z为正的样本,取出对应的SeqNumber并去重:

valid_seqs = df.loc[
    (df['X'].between(x_min, x_max)) & 
    (df['Y'].between(y_min, y_max)) & 
    (df['Z'] > 0), 
    'SeqNumber'
].unique()

这里用.between()方法判断是否在闭区间,逻辑与用&连接,每个条件要加括号避免优先级错误,最后用.unique()得到无重复的有效SeqNumber列表。

步骤2:用.loc筛选原始DataFrame

保留原始DataFrame中所有SeqNumber属于上述有效集合的行:

result_df = df.loc[df['SeqNumber'].isin(valid_seqs)]

示例验证

对应你给出的测试数据,第一步筛选得到的valid_seqs为[12],最终result_df会保留所有SeqNumber=12的行,也就是原始数据的前两行,和预期结果一致。

如果不需要分步写,也可以合并为单句实现:

result_df = df.loc[df['SeqNumber'].isin(df.loc[(df['X'].between(x_min,x_max)) & (df['Y'].between(y_min,y_max)) & (df['Z']>0), 'SeqNumber'].unique())]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:36:03