比較兩個熊貓系列時,我遇到了一個問題。我將一些系列傳遞給一個應該根據條件計算東西的函式,如下所示:
di = {'A': [1, 2, 7, 2], 'B': [3, 5, 6, 4], 'C': [9, 8, 7, 4]}
df = pd.DataFrame(di)
def function(s1, s2, s3):
if s1 > s2:
s4 = s2 s3
else:
s4 = s1 s3
return s4
df['D'] = function(df['A'], df['B'], df['C'])
但我得到一個ValueError: The truth value of a Series is ambiguous. 我想這是因為我應該逐行比較系列的元素,兩兩比較,而運算子 > 不能這樣作業。
如果不對 Serieses 的元素使用 for 回圈,我如何才能使該功能正常作業?
uj5u.com熱心網友回復:
因為使用陣列使用numpy.whereadd s3- 輸出是Series:
def function(s1, s2, s3):
return s3 np.where(s1 > s2, s2, s1)
對于輸出一維陣列,可以使用:
def function(s1, s2, s3):
return np.where(s1 > s2, s2 s3, s1 s3)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/494880.html
下一篇:在R中查找跨行的值變化
