Flatten Pandas DataFrame after Aggregate

Kontext Kontext 0 1817 1.76 index 9/4/2022

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)
pandas python

Join the Discussion

View or add your thoughts below

Comments