python - Pandas MultiIndex 仅一级更改顺序
问题描述
我有一个带有多索引列的数据框:
|A |B
|1 |2 |1 |2
0|a b c d
我想交换一级以获得:
|A |B
|2 |1 |2 |1
0|b |a |d |c
但随着
df.sort_index(axis=1, level=1)
我得到:
|A|B|A|B
|1|1|2|2
0|a|c|b|d
请帮忙
非常感谢
解决方案
假设它们具有相同的标签,您可以使用reindex
with level=1
:
df
A B
1 2 1 2
0 a b c d
df.reindex([2, 1], level=1, axis=1)
A B
2 1 2 1
0 b a d c
概括地说,您可以访问MultiIndex.levels
:
df.reindex(df.columns.levels[1][::-1], level=1, axis=1)
A B
2 1 2 1
0 b a d c
如果所有第一级标签的第二级值不同,请使用
df.loc[:, ::-1].reindex(df.columns.levels[0], level=0, axis=1)
A B
2 1 2 1
0 b a d c
推荐阅读
- opencv - 如何在 OpenCV 中填充折线?
- android - Admob 横幅不显示
- ios - Swift:collectionView 单元格
- javascript - Express js路由器不工作
- javafx - JavaFX学习资料的建议
- xamarin.android - Xamarin Android 应用程序中的 Autofac 错误
- laravel - 从作业中发送 Guzzle http 请求后没有响应
- reactjs - redux-persist 和 AsyncStorage 有什么区别?
- java - Java,将相同的对象映射到不同的对象
- android - 类似 Snapchat 的 Viewpager 动画