Pandas 中布林索引的邏輯運算子
在Pandas 中使用布林索引時,了解邏輯運算子之間的差異非常重要" &“ 和“和”。
問題:為什麼以下語句可以正常運作:
a[(a['some_column']==some_number) & (a['some_other_column']==some_other_number)]
但以下語句會出現錯誤:
a[(a['some_column']==some_number) and (a['some_other_column']==some_other_number)]
答案:
「和」 Python中的運算子將其操作數隱式轉換為布林值。然而,在處理 NumPy 數組(以及基於 NumPy 數組的 Pandas Series)時,這種轉換可能會導致歧義。 在評估包含多個元素的陣列的真值時,不清楚是否應該這樣做如果滿足以下條件,則被視為True:範例:
import pandas as pd a = pd.DataFrame({'x':[1,1],'y':[10,20]}) print(a[(a['x']==1) & (a['y']==10)])
x y 0 1 10
以上是Pandas 布林索引:為什麼使用「&」而不是「and」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!