【问题标题】:data.plot.bar() Mixing up index labelsdata.plot.bar() 混合索引标签
【发布时间】:2018-12-18 19:14:57
【问题描述】:

我有以下代码在 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】:

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

    【讨论】:

      猜你喜欢
      • 2017-11-29
      • 1970-01-01
      • 2020-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多