Skip to content
Advertisement

How to plot aggregated by date pandas dataframe

I have this dataframe

df=pd.DataFrame([["2017-01-14",1],
    ["2017-01-14",30],
    ["2017-01-16",216],
    ["2017-02-17",23],
    ["2017-02-17",2],
    ["2017-03-19",745],
    ["2017-03-19",32],
    ["2017-03-20",11],
    ["2017-03-20",222],
    ["2017-03-21",4]],columns=["date","payout_value"])

To aggregate payout_value by date I use:

df_daily=df.groupby('date').agg(['sum'])

payout_value
sum
date    
2017-01-14  31
2017-01-16  216
2017-02-17  25
2017-03-19  777
2017-03-20  233
2017-03-21  4

How do I plot (bar chart) dates on x-axis and aggregated payout sum on y axis?

I tried using df.plot(x='date', y='payout_value',kind="bar") approach, but there is no ‘date’ column in df_daily dataframe, print(list(df_daily)) gives [('payout_value', 'sum')]

Advertisement

Answer

you are almost there, use reset_index and plot your by df_daily

df_daily=df.groupby('date').agg(['sum']).reset_index()
df_daily.plot(x='date', y='payout_value',kind="bar")
plt.show()

enter image description here

Advertisement