How to Create a Dictionary From a Grouped Dataframe in Python

To create a dictionary from a grouped dataframe in Python, you can use the groupby() function along with the apply() function.

The following example shows how to create a dictionary from a grouped dataframe in Python.

Using groupby() & apply() Function

We can use the groupby() and apply() functions to create a dictionary from a grouped dataframe.

Suppose we have the following dataframe:

# Import pandas library
import pandas as pd

# Create dataframe
df = pd.DataFrame({
    "Product_Name": ["Laptop", "Mobile", "Printer", "Keyboard", "Scanner", "Mouse", "Laptop", "Printer", "Keyboard", "Mouse"],
    "Price": [4500, 550, 250, 50, 350, 50, 3000, 300, 100, 60]
})

# Create grouped dataframe
grouped_df = df.groupby('Product_Name')

# Create dictionary
dictionary = grouped_df.apply(lambda x: x.to_dict('records')).to_dict()

# Show dictionary
print(dictionary)

Output: 👇️

{
    'Keyboard': [{'Product_Name': 'Keyboard', 'Price': 50}, {'Product_Name': 'Keyboard', 'Price': 100}],
    'Laptop': [{'Product_Name': 'Laptop', 'Price': 4500}, {'Product_Name': 'Laptop', 'Price': 3000}],
    'Mobile': [{'Product_Name': 'Mobile', 'Price': 550}],
    'Mouse': [{'Product_Name': 'Mouse', 'Price': 50}, {'Product_Name': 'Mouse', 'Price': 60}],
    'Printer': [{'Product_Name': 'Printer', 'Price': 250}, {'Product_Name': 'Printer', 'Price': 300}],
    'Scanner': [{'Product_Name': 'Scanner', 'Price': 350}]
}

In this example, we use the groupby() function to group the dataframe df by the Product_Name column.

We then use the apply() function to convert each group to a dictionary of records and finally convert the grouped dataframe to a dictionary.

The output shows the dictionary created from the grouped dataframe.

Conclusion

We can use the groupby() and apply() functions to create a dictionary from a grouped dataframe in Python.