[英]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.