Pandas dataframe groupby plot

前端 未结 2 1189
一个人的身影
一个人的身影 2020-11-27 13:21

I have a dataframe which is structured as:

          Date   ticker  adj_close 
0   2016-11-21     AAPL    111.730     
1   2016-11-22     AAPL    111.800             


        
2条回答
  •  南方客
    南方客 (楼主)
    2020-11-27 13:57

    Simple plot,

    you can use:

    df.plot(x='Date',y='adj_close')
    

    Or you can set the index to be Date beforehand, then it's easy to plot the column you want:

    df.set_index('Date', inplace=True)
    df['adj_close'].plot()
    

    If you want a chart with one series by ticker on it

    You need to groupby before:

    df.set_index('Date', inplace=True)
    df.groupby('ticker')['adj_close'].plot(legend=True)
    


    If you want a chart with individual subplots:

    grouped = df.groupby('ticker')
    
    ncols=2
    nrows = int(np.ceil(grouped.ngroups/ncols))
    
    fig, axes = plt.subplots(nrows=nrows, ncols=ncols, figsize=(12,4), sharey=True)
    
    for (key, ax) in zip(grouped.groups.keys(), axes.flatten()):
        grouped.get_group(key).plot(ax=ax)
    
    ax.legend()
    plt.show()
    

提交回复
热议问题