使用dplyr删除数据集中所有列均为负值的指定行
删除所有列取值均为负值行的实现方法
你可以根据自己常用的工具选择对应方案:
R语言
# 构造示例数据 df <- data.frame( Variable1 = c(2,3,4,-5,-9,-5,3,4), Variable2 = c(-9,-7,5,-1,3,-9,2,4), Variable3 = c(4,4,5,-9,3,2,1,-3), Variable4 = c(3,3,1,-9,2,1,5,-3), Variable5 = c(2,3,5,-7,3,3,5,6), Variable6 = c(3,5,3,-1,4,4,5,5), Variable7 = c(5,3,2,-6,3,2,1,4) ) # 筛选逻辑:排除所有列取值都小于0的行 df_filtered <- df[!apply(df, 1, function(row) all(row < 0)), ]
Python(基于pandas库)
import pandas as pd # 构造示例数据 df = pd.DataFrame({ 'Variable 1': [2,3,4,-5,-9,-5,3,4], 'Variable 2': [-9,-7,5,-1,3,-9,2,4], 'Variable 3': [4,4,5,-9,3,2,1,-3], 'Variable 4': [3,3,1,-9,2,1,5,-3], 'Variable 5': [2,3,5,-7,3,3,5,6], 'Variable 6': [3,5,3,-1,4,4,5,5], 'Variable 7': [5,3,2,-6,3,2,1,4] }) # 筛选逻辑:排除所有列取值都小于0的行 df_filtered = df[~(df < 0).all(axis=1)]
Excel 操作
- 新增一列作为辅助判断列,假设你的数据从A2单元格开始,G列是最后一列数值
- 辅助列首个单元格输入公式:
=AND(A2<0,B2<0,C2<0,D2<0,E2<0,F2<0,G2<0),下拉填充到所有行 - 筛选辅助列值为
FALSE的行,就是你需要的结果,直接复制使用即可
内容的提问来源于stack exchange,提问作者Tannya Kumar
相关产品推荐
相关产品推荐

