pandas.DataFrame.swaplevel#
- DataFrame.swaplevel(i=-2, j=-1, axis=0)[源代码]#
交换
MultiIndex的级别 i 和 j。默认交换索引中最里面的两个级别。
- 参数:
- i, jint 或 str
要交换的索引级别。可以传递级别名称作为字符串。
- axis{0 或 ‘index’, 1 或 ‘columns’}, 默认为 0
交换级别的轴。0 或 ‘index’ 表示行,1 或 ‘columns’ 表示列。
- 返回:
- DataFrame
具有交换了 MultiIndex 中级别的 DataFrame。
另请参阅
DataFrame.reorder_levels重新排序 MultiIndex 的级别。
DataFrame.sort_index排序 MultiIndex。
示例
>>> df = pd.DataFrame( ... {"Grade": ["A", "B", "A", "C"]}, ... index=[ ... ["Final exam", "Final exam", "Coursework", "Coursework"], ... ["History", "Geography", "History", "Geography"], ... ["January", "February", "March", "April"], ... ], ... ) >>> df Grade Final exam History January A Geography February B Coursework History March A Geography April C
在接下来的示例中,我们将交换索引的级别。在这里,我们将按列交换级别,但级别也可以以类似的方式按行交换。请注意,按列是默认行为。通过不为 i 和 j 提供任何参数,我们将交换最后和倒数第二个索引。
>>> df.swaplevel() Grade Final exam January History A February Geography B Coursework March History A April Geography C
通过提供一个参数,我们可以选择要与最后一个索引交换哪个索引。例如,我们可以按如下方式交换第一个索引和最后一个索引。
>>> df.swaplevel(0) Grade January History Final exam A February Geography Final exam B March History Coursework A April Geography Coursework C
我们还可以通过提供 i 和 j 的值来显式定义要交换的索引。在这里,例如,我们交换第一个和第二个索引。
>>> df.swaplevel(0, 1) Grade History Final exam January A Geography Final exam February B History Coursework March A Geography Coursework April C