如何解决Python Pandas 动态重新排序列?
有没有办法动态重新排序多索引中的列?
在下面的示例中,数据集不包括“16.11-22.11”。但是,在未来的数据集中,它可能包含也可能不包含“16.11-22.11”。因此,为什么我只需要在
上专门对列重新排序'GM(%)','GM' and 'S'
代替
('01.11-08.11','A','GM(%)'),('01.11-08.11','S'),'B','GM'),
这也意味着不可能预先定义一个元组来重新排序整个 MultiIndex。 (解释:如果我像下面这样预定义列变量,我会在未来的数据集中错过 16.11-22.11 的日期)
数据框:
columns = pd.MultiIndex.from_tuples([('01.11-08.11',('09.11-15.11','S')])
index = pd.MultiIndex.from_tuples([('CompA','jan'),('CompB','feb')
],names=['Company','Test Dates'])
df = pd.DataFrame([('1','2','3','4','5','6','7','8','9','10','11','12'),('1','12')
],index = index,columns = columns)
哪个,运行时看起来像这样:
01.11-08.11 ... 09.11-15.11
A B ... A B
GM GM(%) S GM GM(%) ... GM(%) S GM GM(%) S
Company Test Dates ...
CompA jan 1 2 3 4 5 ... 8 9 10 11 12
CompB feb 1 2 3 4 5 ... 8 9 10 11 12
[2 rows x 12 columns]
我想要的样子:
01.11-08.11 ... 09.11-15.11
A B ... A B
S GM GM(%) S GM ... GM GM(%) S GM GM(%)
Company Test Dates ...
CompA jan 1 2 3 4 5 ... 8 9 10 11 12
CompB feb 1 2 3 4 5 ... 8 9 10 11 12
[2 rows x 12 columns]
我一直在尝试对索引进行排序、重置索引和再次设置索引,但无济于事。
非常感谢任何帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。