2017-01-12 28 views
1

我濾除基於給定列的值如下面的數據幀的一些行:大熊貓:使用多於一個的柱過濾器的行值

new_df = my_df.loc[my_df['A_count'] == 0.0] 

代碼工作正常。然後我試圖從兩列篩選出使用值的行象下面這樣:

new_df = my_df.loc[my_df['A_count'] == 0.0 & my_df['B_count'] == 0.0 ] 

然後代碼給我錯誤:

TypeError: cannot compare a dtyped [float64] array with a scalar of type [bool] 

如何實際使用值多列執行的過濾器?謝謝!

+4

你需要圍繞每個條件的括號。 – root

+0

的作品。謝謝! – Edamame

回答

2

由於@root指出......這部作品

new_df = my_df.loc[(my_df['A_count'] == 0.0) & (my_df['B_count'] == 0.0)] 

但是,你也可以使用query
我喜歡query,因爲它會自動過濾你和查詢語法往往是非常直觀的。注意缺少括號。

my_df.query('A_count == 0 & B_count == 0') 
+1

非常感謝看到一個行動中的「查詢」的例子! – ericmjl