我正在尝试将两个数据框相乘
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相乘,但是没有用
请帮我解决这个问题
最佳答案
您可以将df2 rename
Key_1
设置为Key
(类似于df1),然后在mul
上设置索引和level=1
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
关于python-3.x - 将两个具有相同维度并重复行的不同数据框相乘,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60760573/