如何使用两个数据框计算结果

How to calculate results by using two data frames

我有两个数据框Df1和Df2。我想从 Df1 中选择名称为 B 的值,并将该数字与 Df2 中的列权重相乘,以便我得到一个新的结果列,就像在新数据框 Df2 new 中一样。

我该如何解决这个问题?

假设 'B'df1name 列中是唯一的,您可以查找 df1 中的值并将其乘以 weight df2 的列,如下所示:

import pandas as pd

df1 = pd.DataFrame({'name': ['A', 'B', 'C'],
                    'value': [100, 300, 150]})
df2 = pd.DataFrame({'no': [115, 99, 76],
                    'weight': [.3, .5, .2]})

df2['result'] = df1.value.values[df1.name == 'B'] * df2.weight
print(df2)
    no  weight  result
0  115     0.3    90.0
1   99     0.5   150.0
2   76     0.2    60.0

权重值当然应该作为数据框中的浮点数给出,而不是包含百分号的字符串。