["python","pandas","dictionary","dataframe"]
How to convert dataframe to dictionary in pandas WITHOUT index

I have a dataframe df as follows: | name | coverage | |-------|----------| | Jason | 25.1 | I want to convert it to a dictionary. I used the following command in pandas : dict=df.to_dict() The output of dict gave me the following: {'coverage': {0: 25.1}, 'name': {0: 'Jason'}} I do not want the 0 in my output. I believe this is captured because of the column index in my dataframe df. What can I do to eliminate 0 in my output ( I do not want index to be captured.) expected output : {'coverage': 25.1, 'name': 'Jason'}
When I see your dataset with 2 columns I see a series and not a dataframe. Try this: d = df.set_index('name')['coverage'].to_dict() which will convert your dataframe to a series and output that. However, if your intent is to have more columns and not a common key you could store them in an array instead using 'records'. d = df.to_dict('r'). ` Runnable code: import pandas as pd df = pd.DataFrame({ 'name': ['Jason'], 'coverage': [25.1] }) print(df.to_dict()) print(df.set_index('name')['coverage'].to_dict()) print(df.to_dict('records')) Returns: {'name': {0: 'Jason'}, 'coverage': {0: 25.1}} {'Jason': 25.1} [{'name': 'Jason', 'coverage': 25.1}] And one more thing, try to avoid to use variable name dict as it is reserved. Updated 2013-11-01. Now use 'records' instead of 'r' thanks to comment.