COSTA COSTA - 9 months ago 104
Python Question

Convert Pandas DataFrame to dictionary

I have a DataFrame with four columns. I want to convert this DataFrame to a python dictionary. I want the elements of first column be

and the elements of other columns in same row be


0 p 1 3 2
1 q 4 3 2
2 r 4 0 9

Output should be like this:


{'p': [1,3,2],'q': [4,3,2],'r': [4,0,9]}

Answer Source

The to_dict() method sets the column names as dictionary keys so you'll need to reshape your DataFrame slightly. Setting the 'ID' column as the index and then transposing the DataFrame is one way to achieve this.

to_dict() also accepts an outtype keyword argument which you'll need in order to output a list of values for each column. Otherwise, a dictionary of the form {index:value} will be returned for each column.

These steps can be done with the following line:

>>> df.set_index('ID').T.to_dict('list')
{'p': [1, 3, 2], 'q': [4, 3, 2], 'r': [4, 0, 9]}