data = {
'hour': [10, 9, 8, 11, 12, 18, 20], 'WHrate': [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7]}
data = pd.DataFrame(data)
data
onehot = OneHotEncoder()
arrays = onehot.fit_transform(np.array(data['hour']).reshape(-1, 1))
arrays = arrays.toarray()
names = ['hour_'+str(n) for n in range(len(arrays[0]))]
data = pd.concat([data, pd.DataFrame(arrays, columns=names)],axis=1)
data = data.drop(['hour'],axis=1)
data