Python MulitIndex:更改第二级索引名

2024-09-19 20:40:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于多列索引的一般性问题。我想将名称第二级索引(nm)更改为“ns1”和“ns2”。看看我下面的df。你知道吗

Out[13]: 
key  nm         0         1         2         3
bar abc -0.424972  0.567020  0.276232 -1.087401
    dse -0.673690  0.113648 -1.478427  0.524988
baz cws  0.404705  0.577046 -1.715002 -1.039268
    cwd -0.370647 -1.157892 -1.344312  0.844885
foo efw  1.075770 -0.109050  1.643563 -1.469388
    vqx  0.357021 -0.674600 -1.776904 -0.968914
qux zxe -1.294524  0.413738  0.276662 -0.472035
    res -0.013960 -0.362543 -0.006154 -0.923061

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

注意到索引名的第二级从所有随机字符串更改为“ns1”和“ns2”。有什么办法可以改变这种状况吗?我原来的数据帧非常大,所以很难手动完成。谢谢!你知道吗


Tags: key名称dffoobarbazoutabc
1条回答
网友
1楼 · 发布于 2024-09-19 20:40:35

通过^{}创建新的MultiIndex并分配回:

df.index = pd.MultiIndex.from_product([df.index.levels[0], ['ns1','ns2']], 
                                      names=df.index.names)
print (df)
                0         1         2         3
key nm                                         
bar ns1 -0.424972  0.567020  0.276232 -1.087401
    ns2 -0.673690  0.113648 -1.478427  0.524988
baz ns1  0.404705  0.577046 -1.715002 -1.039268
    ns2 -0.370647 -1.157892 -1.344312  0.844885
foo ns1  1.075770 -0.109050  1.643563 -1.469388
    ns2  0.357021 -0.674600 -1.776904 -0.968914
qux ns1 -1.294524  0.413738  0.276662 -0.472035
    ns2 -0.013960 -0.362543 -0.006154 -0.923061

^{}类似的解决方案:

df = df.set_index(pd.MultiIndex.from_product([df.index.levels[0], ['ns1','ns2']], 
                                              names=df.index.names))
print (df)
                0         1         2         3
key nm                                         
bar ns1 -0.424972  0.567020  0.276232 -1.087401
    ns2 -0.673690  0.113648 -1.478427  0.524988
baz ns1  0.404705  0.577046 -1.715002 -1.039268
    ns2 -0.370647 -1.157892 -1.344312  0.844885
foo ns1  1.075770 -0.109050  1.643563 -1.469388
    ns2  0.357021 -0.674600 -1.776904 -0.968914
qux ns1 -1.294524  0.413738  0.276662 -0.472035
    ns2 -0.013960 -0.362543 -0.006154 -0.923061

相关问题 更多 >