Python 使用多索引同时添加多个列
我有一个列数可变的数据框架,在列的多索引中处理。我试图在同一个多索引结构中添加几列 我尝试添加新的列,就像如果只有一个列,但它不起作用一样 我试过这个:Python 使用多索引同时添加多个列,python,pandas,multi-index,Python,Pandas,Multi Index,我有一个列数可变的数据框架,在列的多索引中处理。我试图在同一个多索引结构中添加几列 我尝试添加新的列,就像如果只有一个列,但它不起作用一样 我试过这个: df=pd.DataFrame(np.random.rand(4,2),columns=pd.MultiIndex.from_元组([('plus_zero','A'),('plus_zero','B')])) df['plus_one']=df['plus_zero']+1 但是我得到了ValueError:传递的项目数量错误2,位置意味着
df=pd.DataFrame(np.random.rand(4,2),columns=pd.MultiIndex.from_元组([('plus_zero','A'),('plus_zero','B')]))
df['plus_one']=df['plus_zero']+1
但是我得到了ValueError:传递的项目数量错误2,位置意味着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
使用:
您必须指定新列的名称和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