Export pandas DataFrame to a dictionary as tuple keys and values

In Python, the pandas library provides powerful data manipulation and analysis tools. Suppose we have a pandas DataFrame and want to convert it into a dictionary where the keys are tuples and the values are the corresponding DataFrame values. Here’s a step-by-step guide on how to achieve this using pandas:

Import the necessary libraries

Before starting, make sure we have pandas installed. If not, install it using the following command:

pip install pandas

Now, import the required libraries:

import pandas as pd

Create a pandas DataFrame

Let’s start by creating a sample DataFrame for demonstration purposes:

data = {'Name': ['Ahmad', 'Bilal', 'Charlie'],
'Age': [28, 40, 35],
'City': ['Paris', 'Lahore', 'London']}
df = pd.DataFrame(data)
print("Original DataFrame:")
print(df)
Sample dataframe

Convert the DataFrame to dictionary

The .to_dict() method

The pandas.DataFrame.to_dict method in pandas is used to convert a DataFrame to a dictionary. This method provides various options for specifying the format of the resulting dictionary. Here is an overview of the to_dict method:

DataFrame.to_dict(self, orient='dict', into=<class 'dict'>)

Parameters

  • orient: This parameter specifies the format of the output dictionary. It can take values such as 'dict' (default), 'list', 'series', 'records', 'index', and more. The 'records' option is often used when we want a list of dictionaries where each dictionary represents a row in the DataFrame.

  • into: This parameter specifies the target type of the values in the resulting dictionary. By default, it’s set to <class 'dict'>.

Now, let’s convert the DataFrame to a dictionary where the keys are tuples of column values, and the values are the corresponding DataFrame values:

# Convert DataFrame to dictionary with tuple keys and values
result_dict = df.set_index(df.columns.tolist()).to_dict(orient='index')

df: This is assumed to be a pandas DataFrame, a two-dimensional, tabular data structure with labeled axes (rows and columns).

df.columns.tolist(): This part extracts the column names of the df DataFrame and converts them into a list using the tolist() method.

df.set_index(...): This method sets the DataFrame index to the specified column(s) or list.

.to_dict(orient='index'): This part converts the data frame into a dictionary. The orient parameter specifies the format of the resulting dictionary.

Display the resulting dictionary

Finally, let’s display the resulting dictionary:

print("\nDictionary with Tuple Keys and Values:")
print(result_dict)

This will output a dictionary where each key is a tuple representing the values from each column, and the corresponding value is the entire row as a dictionary.

We have successfully exported a pandas DataFrame to a dictionary with tuple keys and values. This approach is flexible and can be adapted to various DataFrame structures.

Code

import pandas as pd
data = {'Name': ['Ahmad', 'Bilal', 'Charlie'],
'Age': [28, 40, 35],
'City': ['Paris', 'Lahore', 'London']}
df = pd.DataFrame(data)
print("Original DataFrame:")
print(df)
# Convert DataFrame to dictionary with tuple keys and values
result_dict = df.set_index(df.columns.tolist()).to_dict(orient='index')
print("\nDictionary with Tuple Keys and Values:")
print(result_dict)

Explanation

Line 1: Import the necessary libraries.

Lines 3–6: A DataFrame (df) has been generated, and data values have been inserted into it.

Line 11: The DataFrame is converted into a dictionary and saved into a resultant dictionary result_dict.

Lines 13–14: The resultant dictionary is displayed.

Conclusion

In conclusion, leveraging pandas’ capabilities allows for a seamless transformation of DataFrame data into a dictionary with tuple keys and values. This approach enhances data representation and retrieval flexibility, offering a valuable tool for Python developers working with diverse datasets.

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved