我试图弄清楚如何检查是否将数据帧作为参数传递
def mean_encoding_with_reg (df,var,alpha,y,test=False):
if test!=False:
test.set_index(var,inplace=True)
test['cat_'+str(var)] = a.mean_y
test.reset_index(inplace=True)
test.drop(var,inplace=True,axis=1)
return df,test
如果我通过了测试参数,则会收到以下消息:
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
答案 0 :(得分:1)
感谢@ Spinor8的帮助。这是我的实现方式:
def mean_encoding_with_reg(df,var,alpha,y,test = False):
if isinstance(test, pd.DataFrame):
test.set_index(var,inplace=True)
test['cat_'+str(var)] = a.mean_y
test.reset_index(inplace=True)
test.drop(var,inplace=True,axis=1)
return df,test
return df
答案 1 :(得分:0)
您将需要使用isinstance()来检查“ test”参数是否为数据帧。
if isinstance(test, pandas.DataFrame):