gpt4 book ai didi

python - Pandas 添加列级别,这会增加总列数

转载 作者:行者123 更新时间:2023-12-01 00:18:11 24 4
gpt4 key购买 nike

我创建了一个数据框,如下所示。

myidx=['idx1','idx2','idx3']
mycols=['a','b','c','d']
df=pd.DataFrame(index=myidx,columns=mycols)
        a    b    c    d
idx1 NaN NaN NaN NaN
idx2 NaN NaN NaN NaN
idx3 NaN NaN NaN NaN

然后我想添加一个包含 n 个重复值的新列级别。让我们说:

mycolsnewlvl=['foo','bar','baz']

预期输出为:

             a              b              c              d   
foo bar baz foo bar baz foo bar baz foo bar baz
idx1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
idx2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
idx3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

我尝试关注this

df.columns = pd.MultiIndex.from_product([df.columns, ['foo','bar','baz']])

但它返回:

ValueError: Length mismatch: Expected axis has 8 elements, new values have 24 elements

我还查看了this但无法让它适用于我的情况。

最佳答案

使用DataFrame.reindex对于按 MultiIndex 值重复的列:

mux = pd.MultiIndex.from_product([df.columns, ['foo','bar','baz']])

df = df.reindex(mux, axis=1)
print (df)
a b c d
foo bar baz foo bar baz foo bar baz foo bar baz
idx1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
idx2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
idx3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

关于python - Pandas 添加列级别,这会增加总列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59153550/

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