将单级数据框与多级数据框相乘

时间:2020-04-02 15:30:20

标签: pandas python-3.8

我有一个数据框df为:

node    date_   A1                 A2            
bkt             B1         B2      B1         B2   
0   1/1/2015    0.9        1       2          1
1   1/2/2015    0.7        0.6     5          6
2   1/3/2015    0.9        1       9          23

df.columns
MultiIndex([( 'date_', ''),
            ( 'A1', 'B1'),
            ( 'A1', 'B2'),
            ( 'A2', 'B1'),
            ( 'A2',  'B2'),
            ( 'Month', '')],
           names=['node', 'bkt'])

我还有一个数据框df2,是:

bkt             B1       B2  
0   1/1/2015    2        1   
1   1/2/2015    2        2
2   1/3/2015    3        1   

是否可以将dfdf1相乘,以便将对应的列B1和B2相乘以得出以下结果:

node    date_   A1                 A2            
bkt             B1         B2      B1         B2   
0   1/1/2015    1.8        1       4          1
1   1/2/2015    1.4        1.2     10         12
2   1/3/2015    2.7        1       27         23

1 个答案:

答案 0 :(得分:3)

是的,您可以:

df_out = df.copy()
df_out.loc[:,['A1','A2']] = df.mul(df2, level=1, axis='columns')

输出:

node     date_   A1       A2    
bkt              B1   B2  B1  B2
0                               
0     1/1/2015  1.8  1.0   4   1
1     1/2/2015  1.4  1.2  10  12
2     1/3/2015  2.7  1.0  27  23