python - 使用自定义分类索引顺序在 Python 中重新排序热图行
问题描述
我有以下数据框
索引是星期几,列是从 0 到 23(一天中的小时)的数字 单元格值是计数
0 1 2 ....
Mon 2 2 4
Tue 5 6 2
Wed 3 1 1
.
.
.
数据框是
df.crosstab(df['DoW'],df['Hour'])
我尝试使用
hourdow.reindex(["Mon", "Tue", "Wed","Thu","Fri","Sat",'Sun'])
要对 Dataframe 进行排序,但是当我绘制图表时,索引仍然会在热图上按字母顺序排序。无论如何要重新排序行?
解决方案
您可以df['DoW']
先设置为类别:
import seaborn as sns
import pandas as pd
days_order = ["Mon", "Tue", "Wed","Thu","Fri","Sat",'Sun']
df = pd.DataFrame({'Dow':np.random.choice(days_order,100),
'Hr':np.random.randint(0,4,100)})
df['Dow'] = pd.Categorical(df['Dow'],
categories=days_order,
ordered=True)
sns.heatmap(pd.crosstab(df['Dow'],df['Hr']))
推荐阅读
- javascript - 找不到创建的数据库行
- angular - 如果 Angular 5 中数组长度为 0,则显示消息
- python - Python web 使用过滤器抓取表格
- machine-learning - 什么是聚类多维数据的好方法?
- ruby-on-rails - 在大型 Ruby on Rails 应用程序中强制执行逻辑模型边界
- python - 如何将 np.power 应用于数据帧
- python - 如何使用 request.GET.get 方法从 django rest 框架中的 url 获取参数?
- python - 如何用excel中的另一个替换特定列中的特定单词
- kubernetes - 用于分蘖部署的 Helm init 卡在 ContainerCREATING 状态
- html - 如何在单击角度 7 中的按钮时获取下拉列表的选定值和选定文本