gpt4 book ai didi

python - 在多索引数据框中插入列

转载 作者:行者123 更新时间:2023-11-28 17:29:16 27 4
gpt4 key购买 nike

我有一个多索引数据框,我想在级别 1 中添加一列并将其分组到适当的级别 0 列中。当我分配新列时,它会将其附加到 df 的末尾。

In [28]: df
Out[28]:
first qux bar foo
second one two one two one two
A -0.563477 -0.032948 -0.131031 1.110537 -0.541374 0.760088
B -1.767642 -1.305016 -0.786291 -0.396981 1.983372 -0.106018
C -0.471136 0.616730 0.019877 0.910230 0.352304 -0.361370

In [29]: df['qux','three'] = [1,2,3]

In [30]: df
Out[30]:
first qux bar foo qux
second one two one two one two three
A -0.563477 -0.032948 -0.131031 1.110537 -0.541374 0.760088 1
B -1.767642 -1.305016 -0.786291 -0.396981 1.983372 -0.106018 2
C -0.471136 0.616730 0.019877 0.910230 0.352304 -0.361370 3

我希望它看起来像

first        qux                 bar                 foo           
second one two three one two one two
A -0.563477 -0.032948 1 -0.131031 1.110537 -0.541374 0.760088
B -1.767642 -1.305016 2 -0.786291 -0.396981 1.983372 -0.106018
C -0.471136 0.616730 3 0.019877 0.910230 0.352304 -0.361370

我尝试了 df.sort_index(axis=1,level=0),它至少将 qux 分组在一起,但它按字母顺序排列了我的 0 级标题。我如何才能在不按字母顺序排列的情况下对常用列名称进行分组?

最佳答案

只需使用:

df = df[['qux', 'bar', 'foo']]

示例(不同的 DataFrame)

使用 documentation for MultiIndex 的修改版,这是与您的问题类似的问题:

import pandas as pd
import numpy as np

arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],
['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']]
df = pd.DataFrame(np.random.randn(8, 4), index=arrays)
df = df.T

# Here is your insertion
df['foo', 'three'] = range(4)

>>> df[['bar', 'qux', 'foo']]
bar qux foo
one two one two one two three
0 0.450777 -1.386835 0.423801 -0.386144 0.362138 2.566733 0
1 0.844537 2.466605 -0.093472 0.226886 0.633393 2.167570 1
2 1.655898 0.995926 0.097128 -0.351759 0.138233 1.099168 2
3 0.409964 -1.232129 1.112228 0.700660 -0.860548 0.219503 3

关于python - 在多索引数据框中插入列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35755725/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com