如何发现每个学号属于唯一的学生?



我有一个数据框架和大约10-12列。其中一列是学生号,例如1234567,另一列是标识符,例如护照号码,许可证号码。我怎样才能发现每个学生都有一个唯一的标识符?像学生1234567只有标识符ABC5679K。此外,我想存储的学生谁被标记与重复标识符。例如,如果学生1234567也有标识符ABC3408T,我想知道这些。

假设这样的输入,其中第一个学生有一个唯一的其他id,而第二个学生有两个不同的id:

student_id other_id
0           1        a
1           1        a
2           2        b
3           2        c

可以使用GroupBy.transformnunique:

mask = df.groupby('student_id')['other_id'].transform('nunique').gt(1)
print(df[mask])

输出:

student_id other_id
2           2        b
3           2        c

或者,对于所有具有重复其他id的学生列表:

s = df.groupby('student_id')['other_id'].nunique()
s[s>1].index.to_list()

输出:[2]

df.groupby(["student_name"])["passport_number"].nunique() > 1

您可以使用groupby和nunique函数来帮助您识别重复。希望这能回答你的问题

相关内容

  • 没有找到相关文章

最新更新