如何根据图形绘制的唯一通道名称拆分数据帧



我一直在尝试根据唯一的通道名称拆分数据帧,然后使用Colab绘制不同周的图表以进行进度演示。

这是我的尝试:

import pandas as pd

#read and append all the worksheets into a single dataframe
all_data = []
for ws in wb.worksheets():
rows=ws.get_all_values()
df=pd.DataFrame.from_records(rows[1:],columns=rows[0])
all_data.append(df)

data = pd.concat(all_data)

#Change data type
data['Week'] = pd.to_datetime(data['Week'], format='%d/%m/%Y')
data['Channel'] = data['Channel'].astype('str')
data['Times of alarms'] = data['Times of alarms'].astype('int')

#Create a new dataframe for analysis
subchannel_df = data[['Channel','Week','Times of alarms']].copy()
subchannel = subchannel_df.groupby(by=['Channel','Week']).agg({'Times of alarms' : 'sum'})
subchannel

在此处输入图像描述

如何将它们分开,并根据唯一的频道名称相应地绘制所有条形图?

我希望为一个频道实现的目标:在此处输入图像描述

提前感谢

更改数据类型后,可以制作一个以"channel"为列、以"Week"为索引的透视表。

subchannel_df = data.pivot_table('Time of alarms', index = 'Week', column='Channel', aggfunc='sum')

然后,如果你想把所有频道放在一个条形图中,

ax= subchannel_df.plot.bar(rot=0)

或者专注于某个频道,比如说"test_chan">

ax= subchannel_df.plot.bar(y='test_chan',rot=0)

最新更新