Home >Backend Development >Python Tutorial >How to Convert a Pandas GroupBy Multi-Index Series Output Back into a DataFrame?
Retrieving Rows from a Pandas GroupBy MultiIndex Series Output
Given a DataFrame with a multi-index, you may perform a GroupBy operation to count or aggregate the values. However, the resulting output is a Series with a hierarchical index, making it difficult to view the raw rows. This article addresses how to convert this output back into a DataFrame containing the original rows.
Question:
How can you transform a Pandas GroupBy multi-index Series output, such as:
City Name Name City Alice Seattle 1 1 Bob Seattle 2 2 Mallory Portland 2 2 Seattle 1 1
into another DataFrame that retains all the original rows?
Answer:
The key to converting the Series back into a DataFrame is to handle the hierarchical index. Here are two approaches:
1. Using add_suffix and reset_index
g1.add_suffix('_Count').reset_index()
This method adds a suffix to the column names and resets the hierarchical index to create a new DataFrame with a flat index.
Output:
Name City City_Count Name_Count 0 Alice Seattle 1 1 1 Bob Seattle 2 2 2 Mallory Portland 2 2 3 Mallory Seattle 1 1
2. Using DataFrame and reset_index
DataFrame({'count' : df1.groupby( [ "Name", "City"] ).size()}).reset_index()
This method creates a new DataFrame from the grouped sizes and resets the hierarchical index to obtain a flat DataFrame.
Output:
Name City count 0 Alice Seattle 1 1 Bob Seattle 2 2 Mallory Portland 2 3 Mallory Seattle 1
These approaches allow you to extract the rows from the GroupBy multi-index Series output and reconstruct a DataFrame that contains all the original data.
The above is the detailed content of How to Convert a Pandas GroupBy Multi-Index Series Output Back into a DataFrame?. For more information, please follow other related articles on the PHP Chinese website!