python – 如何在特定级别重新排序多索引数据框列
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 如何在特定级别重新排序多索引数据框列,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2013字,纯文字阅读大概需要3分钟。
内容图文
![python – 如何在特定级别重新排序多索引数据框列](/upload/InfoBanner/zyjiaocheng/705/840846c423ba47018b1f98e6b5a4dfbe.jpg)
我有一个多索引的DataFrame,其名称附加到列级别.我希望能够轻松地改变列周围的列,以便它们匹配用户指定的顺序.由于这是在管道中,我无法使用this recommended solution并在创建时正确订购它们.
我有一个看起来像(像)的数据表
Experiment BASE IWWGCW IWWGDW
Lead Time 24 48 24 48 24 48
2010-11-27 12:00:00 0.997 0.991 0.998 0.990 0.998 0.990
2010-11-28 12:00:00 0.998 0.987 0.997 0.990 0.997 0.990
2010-11-29 12:00:00 0.997 0.992 0.997 0.992 0.997 0.992
2010-11-30 12:00:00 0.997 0.987 0.997 0.987 0.997 0.987
2010-12-01 12:00:00 0.996 0.986 0.996 0.986 0.996 0.986
我想要列出像[‘IWWGCW’,’IWWGDW’,’BASE’]这样的列表,并将其重新排序为:
Experiment IWWGCW IWWGDW BASE
Lead Time 24 48 24 48 24 48
2010-11-27 12:00:00 0.998 0.990 0.998 0.990 0.997 0.991
2010-11-28 12:00:00 0.997 0.990 0.997 0.990 0.998 0.987
2010-11-29 12:00:00 0.997 0.992 0.997 0.992 0.997 0.992
2010-11-30 12:00:00 0.997 0.987 0.997 0.987 0.997 0.987
2010-12-01 12:00:00 0.996 0.986 0.996 0.986 0.996 0.986
需要注意的是,我并不总是知道“实验”的级别.我试过(其中df是上面显示的多索引框架)
df2 = df.reindex_axis(['IWWGCW', 'IWWGDW', 'BASE'], axis=1, level='Experiment')
但这似乎不起作用 – 它成功完成,但返回的DataFrame的列顺序不变.
我的解决方法是拥有如下功能:
def reorder_columns(frame, column_name, new_order):
"""Shuffle the specified columns of the frame to match new_order."""
index_level = frame.columns.names.index(column_name)
new_position = lambda t: new_order.index(t[index_level])
new_index = sorted(frame.columns, key=new_position)
new_frame = frame.reindex_axis(new_index, axis=1)
return new_frame
reorder_columns(df,’Experiment’,[‘IWWGCW’,’IWWGDW’,’BASE’])做了我的期望,但感觉我正在做额外的工作.有更简单的方法吗?
解决方法:
我不知道什么是副手.创建了一个关于它的增强票:
http://github.com/pydata/pandas/issues/1864
内容总结
以上是互联网集市为您收集整理的python – 如何在特定级别重新排序多索引数据框列全部内容,希望文章能够帮你解决python – 如何在特定级别重新排序多索引数据框列所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。