如何使用两个数据框计算结果
How to calculate results by using two data frames
我有两个数据框Df1和Df2。我想从 Df1 中选择名称为 B 的值,并将该数字与 Df2 中的列权重相乘,以便我得到一个新的结果列,就像在新数据框 Df2 new 中一样。
我该如何解决这个问题?
假设 'B'
在 df1
的 name
列中是唯一的,您可以查找 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
权重值当然应该作为数据框中的浮点数给出,而不是包含百分号的字符串。
我有两个数据框Df1和Df2。我想从 Df1 中选择名称为 B 的值,并将该数字与 Df2 中的列权重相乘,以便我得到一个新的结果列,就像在新数据框 Df2 new 中一样。
我该如何解决这个问题?
假设 'B'
在 df1
的 name
列中是唯一的,您可以查找 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
权重值当然应该作为数据框中的浮点数给出,而不是包含百分号的字符串。