在重新分配pandas行时应用步骤函数

时间:2015-12-14 19:41:00

标签: python pandas

我有两个pandas表,dnum_original_introns。它们都使用相同的非数字索引编制索引。我想根据dd中的值应用步骤函数来转换num_original_introns,如下所示:

d["HasOriginalIntrons"] = d["HasOriginalIntrons"] >= 0.5 * num_original_introns["NumberIntrons"] - 0.5 if num_original_introns["NumberIntrons"] != 0 else False

但这会产生错误

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

我知道这是无效的,并且不可能应用这样的一对条件,但我似乎无法通过谷歌搜索找到替代方案。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

要拥有多个逻辑条件,每个逻辑条件都需要括在括号中,并且中间有一个&符号。例如:

d["HasOriginalIntrons"] = (num_original_introns["NumberIntrons"] != 0) & \ 
                          (
                           d["HasOriginalIntrons"] >= 
                             (0.5 * num_original_introns["NumberIntrons"] - 0.5)
                          )