python - Pandas .pivot_table() 按时间顺序重新排序索引
问题描述
我试图从 seaborn 航班数据集中创建一个数据透视表。当我为热图制作数据透视表时,索引列按字母顺序排序,而我想从一月到十二月按时间顺序排序。有谁知道该怎么做?当我从 Jupyter 笔记本复制和粘贴时,我删除了数据透视表中的值,使其看起来更整洁。
import pandas as pd
import seaborn as sns
#Loading dataset
flights = sns.load_dataset('flights')
#Calling dataset
flights
year month passengers
0 1949 January 112
1 1949 February 118
2 1949 March 132
3 1949 April 129
4 1949 May 121
... ... ... ...
139 1960 August 606
140 1960 September 508
141 1960 October 461
142 1960 November 390
143 1960 December 432
flights.pivot_table(values='passengers',index='month',columns='year')
year 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960
month
April Values.....
August
December
February
January
July
June
March
May
November
October
September
解决方案
一种方法是重新索引并提供索引列表,如下所示:
代码 :
import calendar
month_names = [calendar.month_name[i] for i in range(1,13)]
# ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
newdf = df.reindex(month_names)
推荐阅读
- angular-material - 如何在 mat-toolbar 之后滚动
- amazon-web-services - Aws s3 文件名未在回显函数中使用批处理文件打印
- swift - 来自多个值的唯一数组
- python - 使用 Twisted Web Client 发布具有多个参数的请求
- azure - 使用 Azure AD 的 Springboot+Oauth 客户端凭据授予流程
- html - 我怎样才能使一个 div 进入中心
- c - ffmpeg - 缺少 avformat 标头
- flutter - Flutter Media Query MediaQuery.of(context).size.height 没有给出准确的高度或宽度。从谷歌得到
- r - 在R中将变量条件分配给数据框
- git - 如何复制一个分支和其中的所有数据?