У меня есть фрейм данных, который выглядит следующим образом:
Curricula Course1 Course2 Course3 ... CourseN
0 q1 c1 c2 NaN NaN
1 q2 c14 c21 c1 Nan
2 q3 c2 c14 NaN Nan
...
M qm c7 c9 c21
Там, где количество курсов в учебных планах отличается.
Мне нужен словарь из этого фрейма данных, который выглядит следующим образом:
{'q1': 'c1', 'q1': 'c2', 'q2': 'c14', 'q2': 'c21', 'q2: 'c1' ... }
Если имена строк являются моими ключами, и для каждой строки словарь заполнен всей информацией «Учебный план»: «Курс», за исключением значений «NaN».
То, что я пробовал до сих пор, - это установить индекс для столбца 'Curricula', транспонировать фрейм данных и использовать методы to_dict ('records'), но это привело к следующему выводу:
in:
df.set_index('Curricula')
df_transposed = df.transpose()
Dic = df_transposed.to_dict('records')
out:
[{0: 'q1', 1: 'q2', 2: 'q3', ... }, {0: 'c1', 1: 'c14', 2: 'c2' ...} ... {0: NaN, 1: 'c1', 2: 'Nan']
Таким образом, здесь целочисленные значения столбцов используются в качестве ключей вместо значений разыскиваемых столбцов «Учебная программа» и, кроме того, значения NaN не исключаются.
Кто-нибудь знает, как это исправить?
С наилучшими пожеланиями, Ян