Заполнение значений NaN другими значениями из этого столбца на основе другого столбца

У меня есть кадр данных pandas, подобный этому:

INPUT df:

Student_ID   Subject     Weekly_Feedback
100101         NaN         Excellent: 5
100101         NaN         very good:4
100101       Physics       Good: 3
100101         NaN         Excellent: 5
100102         NaN         Excellent: 5
100102       Chemistry     Good: 3
100102         NaN         Good: 3
100102         NaN         very Good: 3
100102         NaN         Needs improvement: 2

Я хочу заполнить строки в столбце Subject, который имеет значения NaN по соответствующему предмету, используя Student_ID.

Expected OUTPUT df:

Student_ID   Subject     Weekly_Feedback
100101       Physics      Excellent: 5
100101       Physics      very good:4
100101       Physics      Good: 3
100101       Physics      Excellent: 5
100102       Chemistry    Excellent: 5
100102       Chemistry    Good: 3
100102       Chemistry    Good: 3
100102       Chemistry    very Good: 3
100102       Chemistry    Needs improvement: 2

person NPyak    schedule 22.12.2020    source источник
comment
Используйте groupby, а затем лямбда-функцию, чтобы применить ffill и bfill к группе: df['Subject'] = df.groupby("Student_ID")['Subject'].apply(lambda x: x.ffill().bfill())   -  person anky    schedule 22.12.2020