у меня 2 фрейма данных. первый фрейм данных содержит Score и Grades второй фрейм данных содержит Names, Score, и я хочу назначить Grades на основе оценки, обеспеченной Name.
Ниже приведены шаги, которые я выполняю: -
- Отфильтруйте фильтр «Оценка»
- во втором столбце фрейма данных "Score_1 ", где значение не равно 0 и поиск с первым фреймом данных
- Отфильтровать фильтр" Score_1 "
- во втором столбце фрейма данных" Score_2 ", где значение не равно 0и поиск с первым кадром данных
- Отфильтровать поле «Score_2»
Ниже описывается, что происходит, когда мы применяем фильтры и vlookup 1. Если Score_1 пуст, он присваивает значение Value Score 2или Score_3, в зависимости от того, какое значение равно 2. Если Score_2 не заполнено, он присваивает значение из Score_3 3. Если Score_3 пусто, он присваивает значение из Score_2 4. Если все столбцы Счета aпусто, затем пусто.
Я пробовал несколько способов, но безуспешно. Ниже приведен код.
df_row=df1.loc[df1.Score.isna(),'Score_1']=df1.loc[df1.Score_1.isna()].Score_2
df_row=pd.merge(df1[['Name','Score_2']],df,left_on='Score_2',right_on= 'Grade')
df_row.head(20)
[Grades][1]
[Name][2]
[Output][3]
[1]: https://i.stack.imgur.com/Unzjs.png
[2]: https://i.stack.imgur.com/Xdpk9.png
[3]: https://i.stack.imgur.com/KIyPf.png