我有一个具有可变数量的列的数据框,并且在MultiIndex中处理了这些列。我正在尝试将多个列添加到同一MultiIndex结构中
我试图添加新列,就像如果只有一列但无法正常工作一样
我已经试过了:
df = pd.DataFrame(np.random.rand(4,2), columns=pd.MultiIndex.from_tuples([('plus_zero', 'A'), ('plus_zero', 'B')]))
df['plus_one'] = df['plus_zero'] + 1
但是我明白了ValueError: Wrong number of items passed 2, placement implies 1
。
原始文件df
应如下所示:
plus_zero
A B
0 0.602891 0.701130
1 0.395749 0.960206
2 0.268238 0.140606
3 0.165802 0.971707
和我想要的结果:
plus_zero plus_one
A B A B
0 0.602891 0.701130 1.602891 1.701130
1 0.395749 0.960206 1.395749 1.960206
2 0.268238 0.140606 1.268238 1.140606
3 0.165802 0.971707 1.165802 1.971707
使用pd.concat
:
您必须指定新列的名称axis=1
或axis='columns'
pd.concat([df.loc[:,'plus_zero'],df.loc[:,'plus_zero']+1],
keys=['plus_zero','plus_one'],
axis=1)
plus_zero plus_one
A B A B
0 0.049735 0.013907 1.049735 1.013907
1 0.782054 0.449790 1.782054 1.449790
2 0.148571 0.172844 1.148571 1.172844
3 0.875560 0.393258 1.875560 1.393258
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句