将两个独立的数据帧相乘

2024-09-29 01:32:29 发布

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

我有两个数据帧,我想用它们通过应用一个简单的函数来创建第三个数据帧。数据集非常大,因此没有循环遍历每一行和每一列,有没有更有效的方法来做到这一点

# dfA
id   | value |
mars | 10    |
jupt | 15    |
satn | 14    |


# dfB
id   | A   | B   | C   |
satn | 0.5 | 0.3 | 0.2 |
mars | 0.2 | 0.5 | 0.3 |
jupt | 0.6 | 0.3 | 0.1 |

最终结果应该是dfA乘以dfB中相应的id

# dfResult
id   | A      | B      | C      |
mars | 10*0.2 | 10*0.5 | 10*0.3 |
jupt | 15*0.5 | 15*0.3 | 15*0.1 |
satn | 14*0.5 | 14*0.3 | 14*0.2 |

Tags: 数据方法函数idvaluemarsdfadfb
1条回答
网友
1楼 · 发布于 2024-09-29 01:32:29

使用^{}进行匹配,乘以^{},最后从index创建列:

df = dfB.set_index('id').mul(dfA.set_index('id')['value'], axis=0).reset_index()
print (df)
     id    A    B    C
0  jupt  9.0  4.5  1.5
1  mars  2.0  5.0  3.0
2  satn  7.0  4.2  2.8

相关问题 更多 >