2016-12-13 169 views
1

我已經得到了我的資料兩個步驟的過濾過程:熊貓數據框中選擇

data = data[data['Volume']>1] 
data = data[data['Open']>0] 

我試着這樣做:

data = data[data['Open']>0 and data['Volume']>1] 

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

有一種優雅一次性執行此操作的方式?

回答

1

使用&,敷用()的條件:

data = data[(data['Open']>0) & (data['Volume']>1)] 

你應該分別&|~andornot使用。由於運算符的優先級,括號是必需的。

and,ornot的問題是返回的結果是一個布爾值數組,它不理解如何解釋它,因爲它期望一個標量值。

這就是爲什麼你得到錯誤返回,如果添加any()all()這將返回一個布爾值,它會接受