根据列值选择数据帧行以生成1:1关系

2024-06-07 12:09:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Dataframe,我试图根据下面的逻辑选择行。 我对熊猫非常陌生,我很难产生我想要的结果。你知道吗

对于每个小组,如果可能的话,我需要为每个学生分配一个老师(1:1)。 对于第1组,我们只有一个老师,所以所有4个学生都被分配到第1组。 对于第2组,我们有2名教师,教师2得到学生5,教师3得到学生6,因为教师2已经分配给学生5。 对于第三组,我们有两个老师,但只有一个学生,所以学生7被分配给老师5

我阅读了DataFrame.shiftDataframe.diff来处理下一行/上一行的值,但是我不知道如何在这种情况下使用它们。你知道吗

任何帮助都将不胜感激!你知道吗

提前谢谢

Current dataframe

Group No.   Student Teacher Teacher_Score

1   Student_1   Teacher_1   5
1   Student_2   Teacher_1   5
1   Student_3   Teacher_1   5
1   Student_4   Teacher_1   5
2   Student_5   Teacher_2   4
2   Student_5   Teacher_3   3
2   Student_5   Teacher_4   3
2   Student_6   Teacher_2   4
2   Student_6   Teacher_3   3
2   Student_6   Teacher_4   3
3   Student_7   Teacher_5   5
3   Student_7   Teacher_6   4

期望输出 Desired Output

Group No.   Student Teacher Teacher_Score

1   Student_1   Teacher_1   5
1   Student_2   Teacher_1   5
1   Student_3   Teacher_1   5
1   Student_4   Teacher_1   5
2   Student_5   Teacher_2   4
2   Student_6   Teacher_3   3
3   Student_7   Teacher_5   5

Tags: nodataframeshiftgroup小组diff教师老师

热门问题