【发布时间】:2023-03-29 11:25:02
【问题描述】:
我下面的数据框是“IdBox”=4 列中的某个值。它可以帮助我只为“IdBox”=4 绘制数据图。 当 IdBox 值发生变化时,我找不到一种方法来更快地绘制这个函数。我的 IdBox 值范围是 4 到 9,即 6 个图。
chaudiere4 = yy[(yy.NameDeviceType== "Chaudière_logement") & (yy.IdBox == 4.0)]
In [898]: chaudiere4
Out[898]:
UnitDeviceType NameDeviceType IdBox IdDeviceValue ValueDeviceValue weekday hour ONOFF
DateDeviceValue
2015-11-27 17:54:00 On/Off Chaudière_logement 4.0 536448.0 On 4.0 17.0 1
2015-11-27 17:54:00 On/Off Chaudière_logement 4.0 536449.0 Off 4.0 17.0 0
2015-11-27 17:54:00 On/Off Chaudière_logement 4.0 536450.0 On 4.0 17.0 1
2015-11-27 17:54:00 On/Off Chaudière_logement 4.0 536451.0 Off 4.0 17.0 0
2015-11-27 18:09:00 On/Off Chaudière_logement 4.0 536453.0 On 4.0 18.0 1
我创建了一个名为 ONOFF 的列,并按平均值分组以进行绘图。
chaudiere4 = chaudiere4['ONOFF'].groupby(chaudiere4['hour']).mean()
chaudiere4.plot(kind='bar')
plt.title("Chaudiere ON/OFF")
plt.xlabel('hour')
plt.legend('ONOFF')
plt.axis([0, 24, 0, 1])
plt.show()
有没有办法通过函数快速完成此操作,而不是将数据帧更改为 chaudiere5(Idbox=5)和 chaudiere6(Idbox=6)?
【问题讨论】:
-
您想为每个 chaudière 绘制图表吗?
-
确实,我正在寻找一种快速的方法来代替重复整个代码 6 次
-
@cloclo,that 是你想要的吗?
标签: python pandas dataframe plot group-by