开发者社区> 问答> 正文

将2个具有相同维度并重复行的不同数据框相乘

我正在尝试将两个数据框相乘

Df1

Name|Key |100|101|102|103|104
Abb   AB   2   6  10   5   1
Bcc   BC   1   3   7   4   2
Abb   AB   5   1  11   3   1
Bcc   BC   7   1   4   5   0

Df2

Key_1|100|101|102|103|104
AB     10  2   1   5   1
BC     1  10   2   2   4

预期产量

Name|Key |100|101|102|103|104
Abb   AB  20  12   10  25   1
Bcc   BC   1  30   14   8   8
Abb   AB  50   2   11  15  1
Bcc   BC   7  10   8   10   0

我已经尝试将Df1分组,然后与Df2相乘,但是没有用,请帮助我解决这个问题

问题来源:stackoverflow

展开
收起
is大龙 2020-03-21 18:07:57 437 0
1 条回答
写回答
取消 提交回答
  • 您可以将df2 Key_1重命名为Key(类似于df1),然后在level = 1上设置索引和mul。

    df1.set_index(['Name','Key']).mul(df2.rename(columns={'Key_1':'Key'})
                                  .set_index('Key'),level=1).reset_index()
    

    或类似:

    df1.set_index(['Name','Key']).mul(df2.set_index('Key_1')
       .rename_axis('Key'),level=1).reset_index()
    

    正如@QuangHoang正确指出的,您也可以不重命名:

    df1.set_index(['Name','Key']).mul(df2.set_index('Key_1'),level=1).reset_index()
    

    *

    Name Key 100 101 102 103 104 0 Abb AB 20 12 10 25 1 1 Bcc BC 1 30 14 8 8 2 Abb AB 50 2 11 15 1 3 Bcc BC 7 10 8 10 0

    回答来源:stackoverflow

    2020-03-21 18:08:14
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载