簡體   English   中英

Python 具有多個 arguments 的函數

[英]Python Functions with multiple arguments

我寫了以下代碼

def createv(dsn,vname,benchdsn,benchvar):
    #global grp
    for t in range(len(dsn)):
        w=dsn[vname].iloc[t]
        #print(w)
        for index in range(len(benchdsn)):
            #print(index)
            z = benchdsn[benchvar].iloc[index]
            #print(z)
            if w <= z:
                grp = z
                print(grp)
                break     
            else:
                continue
    return grp

recent_sample['carvaluegrp2']= createv(recent_sample,'CarValue',df6,'carvalueU')

問題在於,對於新創建的變量 carvaluegrp2,所有值都是相同的 - 這是來自 recent_sample 的 CarValue 的最后一個值。 我嘗試使用 map() 和 apply() 函數,但出現語法錯誤。 我想要的只是具有適當的值 - function 為 CarValue 的每條記錄返回 - 作為變量 carvaluegrp2 中的值。

您需要將 append 您的結果添加到這樣的運行列表中:

def createv(dsn,vname,benchdsn,benchvar):
    result = []
    for t in range(len(dsn)):
        w=dsn[vname].iloc[t]
        #print(w)
        for index in range(len(benchdsn)):
            #print(index)
            z = benchdsn[benchvar].iloc[index]
            #print(z)
            if w <= z:
                grp = z
                print(grp)
                break     
            result.append(grp)
    return result

此外,您永遠不需要else: continue 這與沒有 else 的 if 語句相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM