如何从不同大小的不同文件进行匹配



我有这样的数据:

course_ID subject_IDS
C242 E434tT423tS32
C98 F8tW109tU275tV33

其中每个course_IDsubject_IDS数量不同(可能一门课程有一个,另一个课程有多个(。对于每个subject_IDS,都有一个文件包含(这些文件应包含相同的学生 ID(,如下所示:

student_IDststudent_IDsthas_this_subject_or_not
124t124t2
54t54t1
832t832t2
99t99t1

其中 1 确定这个student_ID的学生没有那个科目,而 2 则相反。

我需要遍历course_ID的每个subject_ID,最后有一个文件来确定具有该ID的学生是否参加了该课程的任何这些科目(例如通过先将2转换为0然后做OR来做OR;所以最后将0在该课程中拥有这些科目中的任何一个,否则1

(任何帮助将不胜感激。

您可以创建一个 pandas 数据帧,在其中合并所有文件,然后每行包含:course_IDsubject_IDstudent_IDhas_this_subject_or_not。然后按照您的建议将has_this_subject_or_not列转换为布尔列。现在您可以按course_IDstudent_ID分组:

# simplified data:
data = [[1, 1, 1, 0], [1, 2, 1, 1], [2, 1, 1, 0]]
cols = ['course_ID', 'subject_ID', 'student_ID', 'has_this_subject_or_not']
df_combined = pd.DataFrame(data, columns=cols)
df_combined.groupby(by=['course_ID', 'student_ID']).has_this_subject_or_not.sum() > 0

输出

course_ID  student_ID
1          1              True
2          1             False

相关内容

  • 没有找到相关文章

最新更新