无法基于公用索引在Pandas中相乘两个数据帧

2024-10-06 12:28:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在试图找出如何根据公共索引将两个数据帧相乘。第二个数据帧只是第一个数据帧的子集,我想用第一个数据帧乘以第二个数据帧

我尝试过.mul(),但我总是得到一个带有NaN的矩阵,或者一个表示TypeError: can't multiply sequence by non-int of type 'float'的错误。我也尝试过使用map()函数,但没有找到任何好的教程来帮助我理解如何基于索引值执行乘法

理想情况下,我需要一个输出,其中来自Dataframe 2的索引与Dataframe 1匹配,并且每列下的结果值只是对应值的简单乘法

Dataframe #1

            branch    fineroot     foliage
trm                                       
002015   35.111533   35.111533   35.111533
002025   55.359203   55.359203   55.359203
002304         NaN         NaN         NaN
003015  356.592903  356.592903  356.592903
Dataframe #2

            branch    fineroot
trm                           
002025   55.359203   55.359203
002304         NaN         NaN
003015  356.592903  356.592903
Expected Result

trm           branch             fineroot
002025   (55.359*55.359)      (55.359*55.359)
002304        NaN                    NaN
003015    (356.59 * 356.59)  (356.59 * 356.59)


Tags: 数据branchdataframeby矩阵nancanmultiply