如何基于单个列的自定义条件对数据集行进行筛选
基于单列自定义条件筛选数据集行的实现方案
以下针对你提供的测试数据,给出三类常用数据分析工具的实现方法:
测试原始数据
name num 1 A 1 2 B -1 3 C 5 4 D 0 5 E 1
R 语言实现
假设数据集存储为变量 df:
基础包原生语法
直接通过逻辑索引筛选:
- 筛选
num > 0的行:df[df$num > 0, ] - 筛选
num < 0的行:df[df$num < 0, ] - 筛选
num <= 0的行:df[df$num <= 0, ]
dplyr 语法(tidyverse 生态常用)
先加载包:library(dplyr),之后用 filter 函数筛选:
- 筛选
num > 0的行:df %>% filter(num > 0) - 筛选
num < 0的行:df %>% filter(num < 0) - 筛选
num <= 0的行:df %>% filter(num <= 0)
Python Pandas 实现
假设数据集存储为 DataFrame 变量 df:
- 筛选
num > 0的行:df[df['num'] > 0]或df.query("num > 0") - 筛选
num < 0的行:df[df['num'] < 0]或df.query("num < 0") - 筛选
num <= 0的行:df[df['num'] <= 0]或df.query("num <= 0")
SQL 实现
假设数据存储在表 data_table 中:
- 筛选
num > 0的行:
SELECT * FROM data_table WHERE num > 0;
- 筛选
num < 0的行:
SELECT * FROM data_table WHERE num < 0;
- 筛选
num <= 0的行:
SELECT * FROM data_table WHERE num <= 0;
如果需要自定义更复杂的筛选规则,比如筛选num为奇数、num属于指定数值集合等,只需要修改条件表达式即可,整体筛选逻辑不需要调整。
内容的提问来源于stack exchange,提问作者Nate
相关产品推荐
相关产品推荐

