Если получить:
KeyError: 'rank'
, то это означает, что столбец rank
отсутствует.Очевидно, что проблема заключается в пробелах или кодировании.
print (data.columns.tolist())
['admit', 'gre', 'gpa', 'rank']
Ваше решение должно быть упрощено на DataFrame.pop
- он выбирает столбец и удаляет из исходного DataFrame
:
data = data.join(pd.get_dummies(data.pop('rank')))
# Print the first 10 rows of our data
print(data[:10])
admit gre gpa 1 2 3 4
0 0 380 3.61 0 0 1 0
1 1 660 3.67 0 0 1 0
2 1 800 4.00 1 0 0 0
3 1 640 3.19 0 0 0 1
4 0 520 2.93 0 0 0 1
5 1 760 3.00 0 1 0 0
6 1 560 2.98 1 0 0 0
7 0 400 3.08 0 1 0 0
8 1 540 3.39 0 0 1 0
9 0 700 3.92 0 1 0 0