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

提取DataFrame子集后获取剩余未采样数据的通用方法

解决方法

你可以基于ID列的成员判断做行筛选,该方法对大数据集友好,核心思路是先把要排除的ID存入集合(O(1)查找效率),再反向筛选行。

基础写法(无需额外依赖)

# 1. 定义要排除的ID集合,转Set可大幅提升大数量下的查找效率
exclude_ids = Set(["A", "D"])
# 2. 筛选x1列(ID列)不在排除集合中的行
# 写法1:逻辑索引
filtered_data = data[.!(data.x1 .∈ Ref(exclude_ids)), :]
# 写法2:filter函数,可读性更高
filtered_data = filter(row -> !(row.x1 in exclude_ids), data)

可选简洁写法(需安装DataFramesMeta包)

using DataFramesMeta
filtered_data = @rsubset data !(row.x1 in exclude_ids)

结果验证

运行后得到的filtered_data就是符合要求的剩余数据,输出如下:

2×4 DataFrame
 Row │ x1   x2   x3   x4  
     │ Any  Any  Any  Any 
─────┼────────────────────
   1 │ B    1    2    3
   2 │ C    2    1    2

方法说明

  • 适配任意大小的数据集:哪怕原数据集有百万行、待排除的ID有上万个,筛选耗时都不会显著增加
  • 不需要提前知道行的索引位置,完全基于ID值筛选,避免手动选行的误差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:15:02