Pandas groupby: How to sort weekdays in the correct order when creating groupby with two columns?( pandas Groupby:创建两列的Groupby时,如何按正确的顺序对工作日进行排序?)
                            本文介绍了 pandas Groupby:创建两列的Groupby时,如何按正确的顺序对工作日进行排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
                        
                        问题描述
以下数据框包含一年中每小时的值(千瓦时)。
cons2016.head()
    Date        Hour    kWh     Month   Weekday
0   2016-01-01  00:00   71.48   January Friday
1   2016-01-01  01:00   65.32   January Friday
2   2016-01-01  02:00   65.38   January Friday
3   2016-01-01  03:00   62.44   January Friday
4   2016-01-01  04:00   57.56   January Friday
我要根据此数据帧(按垂直轴上的工作日和水平轴上的小时数的正确顺序)创建一个Seborn热图。所以我分组:
weekdayhour = cons2016.groupby(["Weekday", "Hour"]).mean()
weekdayhour = weekdayhour.reset_index()
weekdayhour.head()
    Weekday Hour    kWh
0   Friday  00:00   61.188113
1   Friday  01:00   57.231698
2   Friday  02:00   55.818679
3   Friday  03:00   55.074151
4   Friday  04:00   55.049811
但现在工作日按字母顺序(也在热图中):
heat_weekdayhour = weekdayhour.pivot(index="Weekday", columns="Hour", values="kWh")
sns.heatmap(heat_weekdayhour)
我如何才能按正常顺序安排工作日,从星期一到星期日?我尝试按如下方式添加.reindex:
weekdays = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
weekdayhour = cons2016.groupby(["Weekday", "Hour"]).mean().reindex(labels=weekdays)
但这给了我TypeError: Expected tuple, got str
感谢您的帮助!
推荐答案
使用Categorical
weekdays = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
weekdayhour.Weekday = pd.Categorical(weekdayhour.Weekday,categories=weekdays)
weekdayhour = weekdayhour.sort_values('Weekday')
  Weekday   Hour    kWh
0  Friday  00:00  71.48
1  Friday  01:00  65.32
2  Friday  02:00  65.38
3  Friday  03:00  62.44
4  Friday  04:00  57.56
更多信息:
weekdayhour.Weekday
0    Friday
1    Friday
2    Friday
3    Friday
4    Friday
Name: Weekday, dtype: category
Categories (7, object): [Monday < Tuesday < Wednesday < Thursday < Friday < Saturday < Sunday]
                        这篇关于 pandas Groupby:创建两列的Groupby时,如何按正确的顺序对工作日进行排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
				 沃梦达教程
				
			本文标题为:pandas Groupby:创建两列的Groupby时,如何按正确的顺序对工作日进行排序?
				
        
 
            
        
             猜你喜欢
        
	     - ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
 - 如何使用PYSPARK从Spark获得批次行 2022-01-01
 - 计算测试数量的Python单元测试 2022-01-01
 - 我如何卸载 PyTorch? 2022-01-01
 - 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
 - CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
 - 我如何透明地重定向一个Python导入? 2022-01-01
 - 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
 - YouTube API v3 返回截断的观看记录 2022-01-01
 - 使用 Cython 将 Python 链接到共享库 2022-01-01
 
