Flatten Pandas DataFrame after Aggregate

Code description

In code snippet Pandas DataFrame Group by one Column and Aggregate using MAX, MIN, MEAN and MEDIAN, it shows how to do aggregations in a pandas DataFrame. This code snippet shows you how to flatten the DataFrame (multiindex) after aggregations. 

Sample output:

  category  value_max  value_min  value_mean  value_median
0        A         90          0          45            45
1        B         91          1          46            46
2        C         92          2          47            47
3        D         93          3          48            48
4        E         94          4          49            49
5        F         95          5          50            50
6        G         96          6          51            51
7        H         97          7          52            52
8        I         98          8          53            53
9        J         99          9          54            54

Code snippet

    import pandas as pd
    
    categories = []
    values = []
    for i in range(0,100):
    	categories.append(chr(i%10+65))
    	values.append(i)
    	
    df = pd.DataFrame({'category': categories, 'value':values})
    print(df)
    
    # Aggregate
    df_agg = df.groupby(by=['category'])     			.aggregate({"value":
    			['max', 'min', 'mean', 'median']})
    # Flatten DataFrame
    df_agg.columns = ['_'.join(col) for col in df_agg.columns]
    df_agg = df_agg.reset_index()
    print(df_agg)