微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Power Bi 中使用 Python 脚本计算两个表之间的列公式

如何解决在 Power Bi 中使用 Python 脚本计算两个表之间的列公式

嗨,我正在尝试使用计费时间(表 2 即“AnalystMaster”)向多名员工收费(表 1 即“努力”)

分析师大师:

enter image description here

努力:

enter image description here

代码尝试:

# Python:

import pandas as pd
for i in range(0,len(Efforts["Analyst_Name"])):
    for j in range(0,len(AnalystMaster["Analyst_Name"])):
        if (Efforts["Analyst_Name"][i] == AnalystMaster["Analyst_Name"][j]):
            Efforts["Cost"][i] =(Efforts["Hours"][i]*AnalystMaster["Charge_Rate"][j])
            continue

帮我处理我收到错误的 python 脚本

enter image description here

解决方法

实现的线性搜索现在可以正常工作了。

df1 是分析师大师,df2 是努力

# Python:
import pandas as pd

def linear_search(values,search_for):
    search_at = 0
    value = df1["Charge Rate"].mean()
    search_res = value

# Match the value with each data element    
    while search_at < len(values) and search_res is value:
        if values[search_at] == search_for:
            search_res = df1["Charge Rate"][search_at]
        else:
            search_at = search_at + 1

    return search_res

randomList = []
for i in range(0,len(df2["Analyst_Name"])):
    if df2["Analyst_Name"][i] in df1["Analyst_Name"].values:
        randomList.append(df2["Hours"][i]*linear_search(df1["Analyst_Name"],df2["Analyst_Name"][i]))
    else:
        randomList.append(df2["Hours"][i]*linear_search(df1["Analyst_Name"],df2["Analyst_Name"][i]))
        
df2["Cost"] = randomList

如果 df1 列表中存在 df2 元素,上面的代码会在 df2 元素中执行 for 循环,然后调用线性搜索并返回分析师费用并乘以计费。否则不存在乘以计费小时的平均收费。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。