python - data.plot.bar() 混合索引标签
问题描述
我有以下代码可以在 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>
解决方案
如果将来碰巧帮助其他人,我能够确定这里发生的事情。它发生的事情是它根据它看到的第一件事创建索引,所以如果你注意到上面数据中的第一行将根据我拥有的切点被归类为中间流量,它命名为第一列图中间。如果我在导入训练之前对数据进行重新排序,以使低位排在第一位,它会正确地对索引进行排序。我相信还有一种方法可以在线编写代码,如果有人碰巧知道可以随时回复,但至少我知道它为什么会发生。
推荐阅读
- javascript - 你能隐藏数组渲染的某些反应片段吗?
- javascript - Bootstrap 4.1.3 NavBar 链接在移动设备上不起作用
- python - 背包问题(优化后不能正常工作)
- r - 无法在 Azure DSVM 上安装 AzureStor,因为它不会检测 Rtools
- r - 在R上使用“chull”后如何创建凸面区域(由线连接)
- bash - 你能解释一下 bash shell 中的数学语法吗?
- java - 已解决 - Java ShakeDetector 多次触发 - 如何获得最后一个输出?
- c# - 如何从 .net Core 3.1 dll (WPF) 访问 Dispatcher
- javascript - 在 p5.js 中添加多个对象
- python - 在使用 Django/DRF 时需要有关如何处理和/或避免循环导入的架构建议