Sort quot;Datequot; in Multi-Index(在多索引中排序日期(Q))
本文介绍了在多索引中排序日期(&Q)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
鉴于此多索引数据帧,
Units Import Export
Date 01012019 01022019 02012019 02022019 03012019 03022019 01012019 01022019 02012019 02022019 03012019 03022019
Period
0 4 3 1 1 2 4 2 2 1 1 2 2
1 2 2 3 2 4 2 1 2 3 8 4 9
2 2 6 7 7 5 1 3 6 2 2 2 0
3 4 2 2 2 3 4 1 8 2 9 4 2
我正在尝试弄清楚如何按月份(日期以DDMMYYYY格式)对‘日期’索引进行升序排序。最终结果将同时具有一天的"导入"和"导出"列(例如,01012019将具有4列和2列,并且数据帧将按月份以升序排序)。
我知道为了对日期索引进行排序,我需要使用TO_DATETIME来转换类型。此排序方法仅在我完全删除"Units"索引时才起作用,但我不能这样做。
有没有办法?我曾尝试使用‘GET_LEVEL_VALUES’并为我的索引指定列名,但没有成功。
谢谢。
推荐答案
选择级别依据MultiIndex.get_level_values
,转换为datetime
,然后重新分配:
dates = pd.to_datetime(df.columns.get_level_values(1), format='%d%m%Y')
df.columns = [df.columns.get_level_values(0), dates]
print (df)
Units Import
2019-01-01 2019-02-01 2019-01-02 2019-02-02 2019-01-03 2019-02-03
4 3 1 1 2 4 2
2 2 3 2 4 2 1
2 6 7 7 5 1 3
4 2 2 2 3 4 1
Export
2019-01-01 2019-02-01 2019-01-02 2019-02-02 2019-01-03
4 2 1 1 2 2
2 2 3 8 4 9
2 6 2 2 2 0
4 8 2 9 4 2
然后根据需要按DataFrame.sort_index
排序-例如按第二级:
df = df.sort_index(axis=1, level=1)
print (df)
Import Units Export Units Export Import
2019-01-01 2019-01-01 2019-01-02 2019-01-02 2019-01-03 2019-01-03
4 2 3 1 1 2 4
2 2 2 8 2 9 2
2 6 6 2 7 0 1
4 8 2 9 2 2 4
Export Units Export Import
2019-02-01 2019-02-01 2019-02-02 2019-02-02 2019-02-03
4 1 1 2 2 2
2 3 3 4 4 1
2 2 7 2 5 3
4 2 2 4 3 1
这篇关于在多索引中排序日期(&Q)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:在多索引中排序日期(&Q)
基础教程推荐
猜你喜欢
- 跟在带量词的前瞻后面有什么作用? 2022-09-22
- 在OpenCV中放大后,Python会捕捉图像的特定部分 2022-09-22
- 如何在hdf5文件的多个组之间拆分数据? 2022-09-21
- 如何将RPC与Volttron配合使用 2022-09-21
- 如何防止Groupby超越指数? 2022-09-22
- 从顶点坐标创建三角网格 2022-09-21
- 获取多索引中某个级别的最后一个元素 2022-09-22
- 在 pandas 中使用带有多重索引的.loc 2022-09-22
- 使用工作区API导入方法导入数据库笔记本(动态内 2022-09-21
- Python h5py-为什么我收到广播错误? 2022-09-21