我有以下代码为我提供了一个jupyter笔记本中的图形,但它似乎错误地标记了类别。当我将数据更改为节点中断列中应该归类为低流量单元格的单元格时,它会更改标记为中间流量的条形图。在我看来根据我的分割点分配正确的user_category数据,所以当我在节点中断列中将0更改为1时,我无法理解为什么它会影响中间流量条。有人有主意吗? PS这是我在论坛上的第一个问题,所以如果我没有提供需要帮助的话,请告诉我。谢谢! (X出来的数据是由于专有,但应该与这里的问题无关)
train.head(10)
site past_alarms weather_event max_users node_outage
xxxxxx xxxxxxxxxxxxxxxx Thunderstorm 341 N
xxxxxx xxxxxxxxxxxxxxxx Tornado 71 Y
xxxxxx xxxxxxxxxxxxxxxx None 294 N
xxxxxx None None 395 N
xxxxxx None None 422 N
xxxxxx None None 331 N
xxxxxx None Tornado 260 N
xxxxxx None None 79 N
xxxxxx None None 240 N
xxxxxx None None 370 N
def process_users(df,cut_points,label_names):
df["user_categories"] = pd.cut(df["max_users"],cut_points,labels=label_names)
return df
cut_points = [1, 100, 350, 550]
label_names = ["Low_Traffic","Mid_Traffic","High_Traffic"]
train = process_users(train,cut_points,label_names)
users_cat_pivot =
train.pivot_table(index="user_categories",values="node_outage")
users_cat_pivot.plot.bar()
plt.show()
<graph shown here>
如果碰巧帮助其他人,我能够确定这里发生了什么。它发生的是它根据它看到的第一件事创建索引,所以如果你注意到上面数据中的第一行将根据我的切割点被归类为中间流量,它将命名为第一列。图中。如果我在导入到训练之前对数据进行重新排序以使低值为1,则它会正确地对索引进行排序。我确信还有一种方法可以编写代码,如果有人碰巧知道可以自由回复,但至少我知道它为什么会发生。