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)
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 valuesresult_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 pddata = {'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 valuesresult_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