使用多索引同时添加多个列

2024-07-05 14:25:42 发布

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

我有一个列数可变的数据帧,在列的多索引中处理。我试图在同一个多索引结构中添加几列

我试着添加新的列,就像如果只有一个列的话,但它不起作用

我试过这个:

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

Tags: columns数据fromdataframedfnpplusrandom
1条回答
网友
1楼 · 发布于 2024-07-05 14:25:42

使用^{}

必须指定新列的名称和axis=1axis='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

相关问题 更多 >