我正在尝试将两个数据框相乘
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
您可以将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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。