Если ваше сердце не настроено на использование расплава, это решение может подойти вам: поскольку у каждого учащегося есть только A, B или C, вы можете сначала превратить все значения NaN
в этих столбцах в пустые строки, а затем объединить столбцы A, B и C вместе, используя оператор +
Импорт операторов и стартовый фрейм данных:
import pandas as pd
import numpy as np
df = pd.DataFrame({'id':[1111,1113],
'name':['Phineas','Tilly'],
'A':[np.NaN,np.NaN],
'B':['B',np.NaN],
'C':[np.NaN,'C'],
'gpa':[3.0,2.5]
})
# id name A B C gpa
# 0 1111 Phineas NaN B NaN 3.0
# 1 1113 Tilly NaN NaN C 2.5
Конкатенация строк и вывод по столбцам:
df.fillna('',inplace=True) #replaces all NaN's with ""-empty strings
df['letter_grades'] = df['A'] + df['B'] + df['C'] #concatenate
df = df[['id','name','letter_grades','gpa']] #reassign dataframe identifier
print(df)
# id name letter_grades gpa
#0 1111 Phineas B 3.0
#1 1113 Tilly C 2.5