我有一個數據幀,我寫了下面的函數來填充新列:「系列的真值是不明確的。」系列VS元函數的恆等式
df = pd.DataFrame(np.random.randn(10, 2), columns=['a', 'b'])
def perc(a,b):
if a/b < 0:
n = 0
elif a/b > 1:
n = 1
else:
n = a/b
return n
df['c']=perc(df['a'],df['b'])
df[1:10]
它應該計算百分比列。這裏是我得到的錯誤:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
據我所知,它與DIF和UNC爲系列,而不是單個元素做。但是,我該如何解決它?
什麼行爲,你居然想要什麼?給出一個示例輸入和期望的輸出,演示您試圖捕獲的所有邏輯。這是我的猜測,如果'dif'是系列'[-1,1,3,5]','unc'是系列'[2,3,3]',那麼'dif/unc'將是' [-0.5,0.5,1,1.6666]',你會想返回'[0,0.5,1,1]',這是否正確? –
我需要列'C'來顯示該行的a/b的唯一值。但如果它的負面應該是0%,或者如果其超過100%,它應該顯示1. – Mateyobi
嘿,你知道了。我回應後一定是編輯過它的。請注意,我編輯我的OP是更通用的a/b。 – Mateyobi