data.plot.bar()混合索引标签

问题描述 投票:1回答:1

我有以下代码为我提供了一个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>
python pandas pivot-table jupyter kaggle
1个回答
0
投票

如果碰巧帮助其他人,我能够确定这里发生了什么。它发生的是它根据它看到的第一件事创建索引,所以如果你注意到上面数据中的第一行将根据我的切割点被归类为中间流量,它将命名为第一列。图中。如果我在导入到训练之前对数据进行重新排序以使低值为1,则它会正确地对索引进行排序。我确信还有一种方法可以编写代码,如果有人碰巧知道可以自由回复,但至少我知道它为什么会发生。

© www.soinside.com 2019 - 2024. All rights reserved.