Friday, June 3, 2022

AI/ML: Dataframe aggregation and plotting bar and stacked bar charts

 test_data = [ 

    {'week_label' : 'W1', 'user' : 'user1', 'evt' : 'e1', 'dt' : 100},

    {'week_label' :  'W1', 'user' : 'user2', 'evt' : 'e2', 'dt' : 80},

    {'week_label' :  'W1', 'user' : 'user3', 'evt' : 'e3', 'dt' : 10},

    {'week_label' :  'W1', 'user' : 'user4', 'evt' : 'e4', 'dt' : 102},

    {'week_label' :  'W1', 'user' : 'user5', 'evt' : 'e5', 'dt' : 78},

    {'week_label' :  'W1', 'user' : 'user6', 'evt' : 'e6', 'dt' : 999},

    {'week_label' :  'W2', 'user' : 'user7', 'evt' : 'e7', 'dt' : 23},

    {'week_label' : 'W2', 'user' : 'user1', 'evt' : 'e1', 'dt' : 100},

    {'week_label' : 'W2', 'user' : 'user2', 'evt' : 'e2', 'dt' : 80},

    {'week_label' : 'W2', 'user' : 'user3', 'evt' : 'e3', 'dt' : 10},

    {'week_label' : 'W2', 'user' : 'user4', 'evt' : 'e4', 'dt' : 102},

    {'week_label' : 'W2', 'user' : 'user5', 'evt' : 'e5', 'dt' : 78},

    {'week_label' : 'W3', 'user' : 'user7', 'evt' : 'e7', 'dt' : 23},

    {'week_label' : 'W3', 'user' : 'user1', 'evt' : 'e1', 'dt' : 100},

    {'week_label' : 'W3', 'user' : 'user2', 'evt' : 'e2', 'dt' : 80},

    {'week_label' : 'W4', 'user' : 'user3', 'evt' : 'e3', 'dt' : 10},

    {'week_label' : 'W4', 'user' : 'user4', 'evt' : 'e4', 'dt' : 102},

    {'week_label' : 'W4', 'user' : 'user5', 'evt' : 'e5', 'dt' : 78}

]

test_df = pd.DataFrame(test_data)

test_df_an=test_df.groupby('week_label').agg(['count']).reset_index()

print('test_df_an agg \n',test_df_an)


//Below gives bar chart 

test_df_an.plot(x='week_label', y='evt',kind="bar")


//Below gives a stacked version of it 

test_df_an[['evt','dt','user']].plot(kind='bar', stacked=True)


References

https://stackoverflow.com/questions/50594613/how-to-plot-aggregated-by-date-pandas-dataframe

https://stackoverflow.com/questions/23415500/pandas-plotting-a-stacked-bar-chart


No comments:

Post a Comment