Трудно точно сказать, что вы хотите сделать. Вот 3 способа сгладить ваш фрейм данных.
x=df.values.flatten()
x
x=df.stack().values
x
import numpy as np
np.reshape(df.values, (1,df.shape[0]*df.shape[1]))
Результат:
array([[1254, 'spring 2018', 2.93, 'math', 1, 0.56, 1359, 'spring 2018',
3.67, 'geom', 1, 0.89, 1254, 'fall 2018', 1.65, 'alg', 1, 0.95,
1296, 'spring 2018', 4.0, 'history', 0, 0.7, 1353, 'spring 2018',
3.95, 'art', 0, 0.3, 2656, 'fall 2020', 2.92, 'geography', 1,
0.64, 1353, 'fall 2018', 2.82, 'donkey ownership', 1, 0.49]],
dtype=object)
Или, возможно, вы хотите использовать melt, например:
pd.melt(df, id_vars=['name_id'])
Результат:
name_id variable value
0 1254 enrollment_term spring 2018
1 1359 enrollment_term spring 2018
2 1254 enrollment_term fall 2018
3 1296 enrollment_term spring 2018
4 1353 enrollment_term spring 2018
5 2656 enrollment_term fall 2020
6 1353 enrollment_term fall 2018
7 1254 gpa_term 2.93
8 1359 gpa_term 3.67
9 1254 gpa_term 1.65
10 1296 gpa_term 4
11 1353 gpa_term 3.95
12 2656 gpa_term 2.92
13 1353 gpa_term 2.82
14 1254 course math
15 1359 course geom
16 1254 course alg
17 1296 course history
18 1353 course art
19 2656 course geography
20 1353 course donkey ownership
21 1254 dorm_res 1
22 1359 dorm_res 1
23 1254 dorm_res 1
24 1296 dorm_res 0
25 1353 dorm_res 0
26 2656 dorm_res 1
27 1353 dorm_res 1
28 1254 home_work 0.56
29 1359 home_work 0.89
30 1254 home_work 0.95
31 1296 home_work 0.7
32 1353 home_work 0.3
33 2656 home_work 0.64
34 1353 home_work 0.49
Или, может быть, это
x = df.pivot(index='name_id', columns='enrollment_term', values='gpa_term')
x
Результат:
enrollment_term fall 2018 fall 2020 spring 2018
name_id
1254 1.65 NaN 2.93
1296 NaN NaN 4.00
1353 2.82 NaN 3.95
1359 NaN NaN 3.67
2656 NaN 2.92 NaN
Я не вижу здесь никаких продольных данных.