python应用与实践之(二)画图时坐标轴标签排序混乱,如何调整?

在这个版块里面,会把平时遇到的一些很具体的功能实现问题进行总结,分享实现方法。

待解决的问题,待实现的功能

flights = pd.read_excel(r'C:\Users\Desktop\qq.xlsx')
flights = flights.pivot("month", "year", "passengers") 

用seaborn画热图的时候,在导入数据后,用pivot对年份和月份做了透视表(表格数据如下面两个截图所示,分别为源数据和透视后数据),可以看到透视后月份变成按照字母进行排序了,而不是我们最初始的顺序了,导致最终热图输出也是有问题的。
为什么会变呢?如何调整过来?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解决方案:
解决方法其实很简单,只需要自定义下标签的顺序,让数据按照我们自定义的顺序重新排序就可以了。
方案1:

flights=flights.reindex(["January", "February", "March", "April", "May", "June",'July','August','September','October','November','December'])

方案2:

flights=flights.loc[["January", "February", "March", "April", "May", "June",'July','August','September','October','November','December'],]

方案3:

flights.index = pd.CategoricalIndex(flights.index, categories= ["January", "Februar", "March", "April", "May", "Jue",'July','August','September','October','November','December'])
flights.sort_index(level=0, inplace=True)

知识点总结

  • 重新索引
    reindex是pandas对象的重要方法,该方法用于创建一个符合新索引的新对象。
    reindex可以改变行索引、列索引,也可以同时改两者。当仅传入一个序列时,结果中的行会重新索引(即默认改变行索引)。
    frame.reindex([‘a’,‘b’,‘c’,‘d’]) #此时会改变行索引
    frame.reindex(columns=[‘a’,‘b’,‘c’,‘d’]) #此时改变列索引
    frame.reindex([‘a’,‘b’,‘c’,‘d’],columns=[‘a’,‘b’,‘c’,‘d’]) #此时同时改变行和列索引
    frame.loc[[‘a’,‘b’,‘c’,‘d’],states] #也可以使用loc索引的方式,间接获得改变了行、列索引的DataFrame

有任何疑问欢迎在留言区里和我讨论,互相学习!如果有帮助到你,也麻烦点点赞哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值