简体   繁体   English

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

[英]Calculated Column formula between two tables using Python Script in Power Bi

Hi I am trying to multiple employees charge (Table1 ie "Efforts") with billing hour (Table2 ie "AnalystMaster")嗨,我正在尝试按计费时间(表 2 即“AnalystMaster”)向多名员工收费(表 1 即“努力”)

Analyst Master:分析师大师:

在此处输入图像描述

Efforts:努力:

在此处输入图像描述

Code Tried:代码尝试:

# 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

Help me with the python script I am getting error帮助我使用 python 脚本我收到错误

在此处输入图像描述

Implemented linear search now works fine.实施的线性搜索现在可以正常工作。

df1 is Analyst Master and df2 is Efforts 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

The above code does a for loop in df2 elements if present in df1 list, then calls linear search and returns the analyst charge and get multiplied by billing.如果 df1 列表中存在 df2 元素,则上面的代码执行 for 循环,然后调用线性搜索并返回分析费用并乘以计费。 Else not present multiplies with mean of charge with billing hour.其他不存在的费用乘以计费时间的平均费用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM