问题描述
我是熊猫新手,有一个multiIndex数据框df
,上面有两个级别的列
one zero
y x y x
0 0.625695 2.149377 0.006123 0.854284
1 -1.392909 0.849853 0.005477 1.743587
现在,我想将每个level=1
的每一行与相同长度的列表相乘。
到目前为止,我只能通过类似的方法来实现这一目标
df.stack(level=0).mul([1.5,2.5]).unstack(level=0).swaplevel(0,1,axis=1).T.sort_index().T
输出应如下所示
one zero
x y x y
0 3.224066 1.564237 1.281426 0.015307
1 1.274779 -3.482272 2.615381 0.013692
我确信必须有一种更轻松/更优雅的方法来实现这一目标。 有人可以指出我正确的方向吗?
解决方法
您的意思是:
df.mul(pd.Series({'x':1.5,'y':2.5}),level=1)
输出:
one zero
y x y x
0 1.564237 3.224066 0.015307 1.281426
1 -3.482272 1.274780 0.013692 2.615381