Well you could use a dictionary comprehension and iterrows:
print {key:row.tolist() for key,row in df.set_index('Label1').iterrows()}
{'key3': ['col1value3', 'col2value3'],
'key2': ['col1value2', 'col2value2'],
'key1': ['col1value1', 'col2value1']}
Also, I think the following will work too:
df = df.set_index('Label1')
print df.T.to_dict(outtype='list')
{'key3': ['col1value3', 'col2value3'],
'key2': ['col1value2', 'col2value2'],
'key1': ['col1value1', 'col2value1']}
Update as of fall 2017; outtype
is no longer the keyword argument. Use orient instead:
In [11]: df.T.to_dict(orient='list')
Out[11]:
{'key1': ['col1value1', 'col2value1'],
'key2': ['col1value2', 'col2value2'],
'key3': ['col1value3', 'col2value3']}