python - 多索引在表格右侧打印二级索引标签

标签 python pandas

http://pandas.pydata.org/pandas-docs/stable/advanced.html 为例

In [10]: arrays = [np.array(['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux']),
   ....:           np.array(['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'])]
   ....: 

In [11]: s = pd.Series(np.random.randn(8), index=arrays)

In [13]: df = pd.DataFrame(np.random.randn(8, 4), index=arrays)

In [14]: df
Out[14]: 
                0         1         2         3
bar one -0.424972  0.567020  0.276232 -1.087401
    two -0.673690  0.113648 -1.478427  0.524988
baz one  0.404705  0.577046 -1.715002 -1.039268
    two -0.370647 -1.157892 -1.344312  0.844885
foo one  1.075770 -0.109050  1.643563 -1.469388
    two  0.357021 -0.674600 -1.776904 -0.968914
qux one -1.294524  0.413738  0.276662 -0.472035
    two -0.013960 -0.362543 -0.006154 -0.923061

如何将第二个索引打印显示移到最后一列之后? 像这样:

            0         1         2         3
bar -0.424972  0.567020  0.276232 -1.087401 one
    -0.673690  0.113648 -1.478427  0.524988 two
baz  0.404705  0.577046 -1.715002 -1.039268 one
    -0.370647 -1.157892 -1.344312  0.844885 two
foo  1.075770 -0.109050  1.643563 -1.469388 one
     0.357021 -0.674600 -1.776904 -0.968914 two
qux -1.294524  0.413738  0.276662 -0.472035 one
    -0.013960 -0.362543 -0.006154 -0.923061 two

最佳答案

不完全相同,但您可以调用 reset_index 传递第二级,然后使用 ix 使用奇特索引对列重新排序,并传递所需列顺序的列表:

In [100]:
df.reset_index(level=1).ix[:,list(df) + ['level_1']]

Out[100]:
            0         1         2         3 level_1
bar -0.171917 -0.084470  0.568098  0.749653     one
bar  0.114017  0.474004 -0.032003  0.197596     two
baz -0.310686 -0.236696  0.471586 -0.286288     one
baz  2.014078  0.957119 -0.399487  1.109984     two
foo -0.309654  0.916766  1.207385 -0.673540     one
foo  0.442063 -0.819095  0.314201 -1.125304     two
qux  1.817970 -0.316869  1.773183 -0.097240     one
qux  0.025067  0.135640  1.054219 -0.230144     two

关于python - 多索引在表格右侧打印二级索引标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38187658/

相关文章:

python - Sobel 算子 - Opencv Python

Python:WAITING所有 `concurrent.futures.ThreadPoolExecutor` 的 future

python - 将函数应用于 a 中的所有条目;分隔列( map ?pandas?)

python-3.x - 使用 Pandas 与 DataFrames 合并时出现 ValueError

python - Plotly Dash API 文档

python - 如何在python中将一个数字转换成它的数字链表

python - 用数字替换字符串 numpy 数组

python - Pandas-如何将数据帧的转置附加到另一个数据帧作为列标题?

python - 如何使用 Python 将 csv 文件转换为 xlsb?

python - 在 Python Pandas 中, boolean 运算