在 Python 中绘制特定列值

Hel*_*rth 2 python plot dataframe python-3.x pandas

我有每年每月(1-12)按小时(0-23)重复的值,例如:

Year    Month     HOUR  NAME            RATE
2010    1          0    Big              2  
2010    1          0    Channelview      4
2010    1          0    Cottonwood       12
2010    1          1    Big              4  
2010    1          1    Channelview      9
2010    1          1    Cottonwood       11
.
.
.
2010    2          0    Big              6  
2010    2          0    Channelview      10
2010    2          0    Cottonwood       17
.
.
2013    1          0    Big              4  
2013    1          0    Channelview      9
2013    1          0    Cottonwood       11
Run Code Online (Sandbox Code Playgroud)

我想按小时(x 轴)绘制一年中每个月的名称的费率数据(y 轴)(持续 7 年)。有没有办法通过.groupby.loc不需要根据年份和月份创建额外的数据框来做到这一点?

sac*_*cuL 5

您可以使用以下方法执行此操作groupby

for name, data in df.groupby('NAME'):
    plt.plot(data['HOUR'], data['RATE'], label=name)

plt.xlabel('Hour')
plt.ylabel('Rate')
plt.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

[编辑]根据您的评论,要为每个名称创建并保存单独的绘图,您可以执行以下操作:

for name, data in df.groupby('NAME'):
    plt.plot(data['HOUR'], data['RATE'], label=name)
    plt.xlabel('Hour')
    plt.ylabel('Rate')
    plt.legend()
    plt.savefig('plot_{}.png'.format(name))
    plt.close()
Run Code Online (Sandbox Code Playgroud)