Python 将较低级别的列与表中的每一行相乘
我对pandas不熟悉,有一个多索引数据框Python 将较低级别的列与表中的每一行相乘,python,pandas,dataframe,multi-index,Python,Pandas,Dataframe,Multi Index,我对pandas不熟悉,有一个多索引数据框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 one zero x
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
one zero
x y x y
0 3.224066 1.564237 1.281426 0.015307
1 1.274779 -3.482272 2.615381 0.013692
现在,我想用相同长度的列表乘以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
y x y x
0 0.625695 2.149377 0.006123 0.854284
1 -1.392909 0.849853 0.005477 1.743587
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
你是说:
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
嗨,欢迎来到苏。请包括一个预期的输出,我不知道一行如何与一个列表相乘(即我不知道你想要什么)。嗨,欢迎来到SO。请包括一个预期的输出,我不知道如何将一行与一个列表相乘(即我不知道你想要什么)。非常感谢