我需要根据dataframe
字段的值创建一些新列,并根据某些费率查找dataframe
。
df1
为
zone hh hhind
0 14 112.0 3.4
1 15 5.0 4.4
2 16 0.0 1.0
和look_up
df为
ind per1 per2 per3 per4
0 1.0 1.000 0.000 0.000 0.000
24 3.4 0.145 0.233 0.165 0.457
34 4.4 0.060 0.114 0.075 0.751
如何通过将基于df1.hh1
和look_up.per1
<{p>的df1.hhind
相乘来更新lookup.ind
zone hh hhind hh1
0 14 112.0 3.4 16.240
1 15 5.0 4.4 0.300
2 16 0.0 1.0 0.000
目前我通过合并表格和算术来获得结果。
r = pd.merge(df1, look_up, left_on="hhind", right_on="ind")
r["hh1"] = r.hh *r.per1
我想通过不合并表格来了解是否有更直接的方法来实现这一目标?
答案 0 :(得分:1)
您可以先将 hhind 和 ind 分别设置为$('body').on('click','a',function(e) {
e.preventDefault();
//rest of your code
});
和df1
数据帧的索引轴。然后,将 hh 和 per1 元素中的相应元素相乘。
将这些结果映射到 hhind 列,然后将其分配给新列,如下所示:
look_up
答案 1 :(得分:1)
另一种解决方案:
df1['hh1'] = (df1['hhind'].map(lambda x: look_up[look_up["ind"]==x]["per1"])) * df1['hh']