I could not recommend pandas more for data-manipulation tasks.
For example, the operation you seek in pandas is called pivot:
In [11]: df = pd.DataFrame({'origin': list('aabbccdd'), 'destination': ['d1', 'd2'] * 4, 'distance': np.arange(8)})
In [12]: df
Out[12]:
destination distance origin
0 d1 0 a
1 d2 1 a
2 d1 2 b
3 d2 3 b
4 d1 4 c
5 d2 5 c
6 d1 6 d
7 d2 7 d
In [13]: df.pivot('origin', 'destination', 'distance')
Out[13]:
destination d1 d2
origin
a 0 1
b 2 3
c 4 5
d 6 7
And to read actual excel file there's pandas.read_excel which AFAIR uses xlrd under the hood:
df = read_excel('path_to_file.xls', 'Sheet1', index_col=None, na_values=['NA'])
And there's a lot more to find in the documentation