熊猫:如何解析系列的真值尚不明确

时间:2020-05-21 01:42:38

标签: python pandas

我正在尝试将函数应用于DataFrame,但是我一直收到此错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我要打的电话就是这个:

 results['M1_Position'] = df.apply(instr_1(ratios, s_entry, s_exit))

和函数instr_1如下:

def instr_1(ratio, s_entry, s_exit):
    if ratio > s_entry:
        return 1
    elif ratio < s_exit:
        return -1
    else: 
        return 0

我理解为什么会出现错误,但是我认为a.all()或a.any()在这种情况下都不会有帮助。如何在不使用for循环的情况下将函数分别应用于DataFrame的每一行(我希望将其向量化)?

1 个答案:

答案 0 :(得分:0)

假设比率,s_entry和s_exit是数据框的列:

 results['M1_Position'] = df.apply(lambda row: instr_1(row.ratio, row.s_entry, row.s_exit), axis=1)