python - 将 Columns 变成多级索引 pandas

标签 python python-3.x pandas jupyter

我有一个包含很多列的 DataFrame。我希望第一列成为我的第一个索引,第 5 列成为我的第二级索引,第 15 列成为我的第三级索引。我该怎么做?请原谅我没有为您提供这个 DataFrame,因为它很长。

换句话说,假设我有以下代码

arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],
   ...:           ['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
s = pd.DataFrame(np.random.randn(8, 4), index=arrays)
s1=s.reset_index(drop=0)
s1

如何将 s1 转换为 s

最佳答案

你可以使用 set_index来完成这个。

>>> s1.set_index(['level_0', 'level_1'], drop=True)
                        0         1         2         3
level_0 level_1                                        
bar     one     -0.300791  0.013540  0.713098 -0.359717
        two      1.044732 -0.364056  1.055409  0.341651
baz     one      0.340860  0.092612 -0.275117  0.271777
        two      0.653210 -0.254870  0.745544 -1.787725
foo     one     -0.594016 -0.034900 -0.495453  0.153198
        two      0.852272 -2.460928 -0.248302  0.534830
qux     one     -0.396236  0.302698  1.791999  0.422901
        two      1.379244 -0.612005 -0.614633 -0.538105

关于python - 将 Columns 变成多级索引 pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42236701/

相关文章:

python - 什么时候可以使用 bool 型 DataArray 进行索引?

python - nltk 自定义分词器和标注器

python - 重新安装后Eclipse找不到库

python - 如何将 "YYYY/MM"类型日期转换为 "MMM-YYYY"在 python 中的 pandas

python - pandas 将字符串列转换为日期时间,允许丢失但不无效

Python Socket异步收发设计

python-3.x - .whl 文件的 Pip 安装只生成 *.dist-info 文件夹

python-3.x - 带有外部列的 Pandas 数据透视表

python 3.0 "with"语法错误?

python - 将包含 2 个值的列拆分为 pandas df 中的不同列