Python’s groupby() function is versatile. It is used to split the data into groups based on some criteria like mean, median, value_counts, etc. In order to reset the index after groupby() we will use the reset_index() function.
Below are various examples which depict how to reset index after groupby() in pandas:
Example 1
Python3
# import required modules import numpy as np import pandas as pd # creating dataframe df = pd.DataFrame({ 'Subject' : [ 'Physics' , 'Chemistry' , 'Maths' ], 'Marks' : [ 4 , 8 , 5 ]}) # grouping the data on the basis of # subject and mean of marks. df_grouped = df.groupby([ 'Subject' ]).mean() # display dataset df_grouped |
Output:
Resetting the index after grouping data, using reset_index(), it is a function provided by python to add indexes to the data.
Python3
# reset index df_grouped.reset_index() |
Output:
Example 2:
Creating Dataframe.
Python3
# import required modules import pandas as pd import numpy as np # creating dataframe df2 = pd.DataFrame({ 'Student' : [ 1 , 2 , 3 , 4 , 1 , 3 , 2 , 4 , 1 , 2 , 4 , 3 ], 'Amount' : [ 10 , 20 , 30 , 40 , 20 , 60 , 40 , 80 , 30 , 60 , 120 , 90 ]}) # grouping the data df2_group = df2.groupby([ 'Student' ]) # grouped on the basis of students and # with the value of count of amount df2_grouped = df2_group[ 'Amount' ].value_counts() # display dataset print (df2_grouped) |
Output:
Resetting the index. This will give you an error.
Python3
# this will generate an error. df2_grouped.reset_index() |
Output:
Naming the reset_index() will group and reset the index.
Python3
# resetting index on the basis of count df2_grouped.reset_index(name = 'count' ) |
Output:
Example 3
Here, is another example to depict how to reset dataframe after using groupby().
Python3
# import required modules import numpy as np import pandas as pd # creating dataframe df = pd.DataFrame({ 'Subject' : [ 'B' , 'C' , 'A' , 'D' , 'C' , 'B' , 'A' ], 'Marks' : [ 4 , 8 , 5 , 9 , 8 , 1 , 0 ]}) # grouping the data on the basis of # subject and mean of marks. df_grouped = df.groupby([ 'Subject' ]).mean() # display dataset df_grouped # reset index df_grouped.reset_index() |
Output: