Даже если такого рода задачи не совсем то, что заставляет панд сиять, это действительно довольно легко решает вашу проблему, переходя к базовому массиву NumPy и изменяя форму данных для соответствия фрейму данных:
In [13]: data = pd.read_excel('Book1.xlsx', header=None).values.reshape(4, 4)
In [14]: pd.DataFrame(data[1:], columns=data[0])
Out[14]:
Rollno Name Class Marks
0 1 A 10 95
1 2 B 10 86
2 3 C 10 90
Имейте в виду, что полученные столбцы имеют тип dtype object
.