如何检查参数是否传递给函数?

时间:2019-08-28 15:15:08

标签: python function dataframe

我试图弄清楚如何检查是否将数据帧作为参数传递

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().

2 个答案:

答案 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):