函数中的连续if条件,Python

时间:2016-11-07 12:06:35

标签: pandas if-statement dataframe

我正在创建一个函数,根据公式中的参数来计算结果。

分别对第一个if函数我想为n不是None的情况添加第二个条件

def target_n(data, y, q = None, s = 1, n = None, ascending = True):
        if q is not None:
            target = quantile(data, q, s)
            return(target)
        else:
            target = y(data,s)
            return(target)
        if n is not None:
            sort = target.sort(tst.columns[0],ascending = ascending).ix[0:n,:]
        return(sort)

然而,对于n不是None的情况,函数返回“target”而不是“sort”。我该如何实现呢?

1 个答案:

答案 0 :(得分:1)

你的问题是你有一个return语句,q是否为None。一旦执行到达return语句,它就会退出函数。

你可以做这样的事情

def target_n(data, y, q = None, s = 1, n = None, ascending = True):
    if q is not None:
        target = quantile(data, q, s)
    else:
        target = y(data,s)
    if n is not None:
        target = target.sort(tst.columns[0],ascending = ascending).ix[0:n,:]

    return(target)