我每年在每个月(1-12)都有HOUR(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
我想用NAME(小时)(x轴)的年(月)(连续7年)按小时(x轴)绘制此RATE数据(y轴)。是否可以通过.groupby
或.loc
来执行此操作,而不必根据年月创建额外的数据框?
答案 0 :(得分:3)
您可以使用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()
[EDIT] 根据您的评论,要为每个名称创建并保存单独的图解,您可以执行以下操作:
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()