如何验证数据集指定行中所有变量的取值是否全部唯一
判断数据集指定行取值是否全部唯一的实现方法
核心判断逻辑:提取目标行除行标识列(如示例中的Name列)外的所有数值,对比去重后的数据长度与原数据长度,二者相等则所有取值唯一,返回TRUE,否则返回FALSE。
常用工具实现方案
Python(Pandas场景)
import pandas as pd # 示例构造数据集,实际使用可替换为pd.read_csv/读取你自己的文件 df = pd.DataFrame({ "Name": ["A", "B", "C", "D"], "F": [1,2,3,4], "S": [2,3,4,5], "T": [3,4,5,4] }) def check_row_unique(df, target_row_name): # 提取目标行,排除Name列后提取所有取值 row_values = df[df["Name"] == target_row_name].drop("Name", axis=1).values.flatten().tolist() # 对比去重前后长度是否一致 return len(set(row_values)) == len(row_values) # 调用示例:判断D行 print(check_row_unique(df, "D")) # 第一个示例输出为True,第二个示例输出为False
R语言场景
# 示例构造数据集,实际使用可替换为read.csv读取你自己的文件 df <- data.frame( Name = c("A", "B", "C", "D"), F = c(1,2,3,4), S = c(2,3,4,5), T = c(3,4,5,4) ) check_row_unique <- function(df, target_row_name) { # 提取目标行排除Name列的取值 row_values <- unlist(df[df$Name == target_row_name, !names(df) %in% "Name"]) # 判断去重后长度是否和原长度相等 return(length(unique(row_values)) == length(row_values)) } # 调用示例 check_row_unique(df, "D") # 第一个示例输出为TRUE,第二个示例输出为FALSE
Excel场景
假设你的数据存放在A~D列,A列为Name,第一行是表头,D行对应第5行数据,可直接在空白单元格输入公式:=IF(SUMPRODUCT(1/COUNTIF(B5:D5,B5:D5))=COLUMNS(B5:D5),TRUE,FALSE)
公式逻辑:COUNTIF统计每个值的出现次数,取倒数求和后等于列数,说明所有值无重复。
内容的提问来源于stack exchange,提问作者Reda
相关产品推荐
相关产品推荐

