Pandas 多條件索引:意外行為
對於 pandas,將過濾器應用於 DataFrame 是一種常見操作。但是,當使用多個條件時,尤其是使用 AND 和 OR 等邏輯運算符時,可能會出現意外結果。
問題:
根據兩列中的值過濾行時,AND 運算符的行為類似於 OR,反之亦然。例如,下面的程式碼應該:
<code class="python">df = pd.DataFrame({'a': range(5), 'b': range(5) }) df['a'][1] = -1 df['b'][1] = -1 df['a'][3] = -1 df['b'][4] = -1 df1 = df[(df.a != -1) & (df.b != -1)] df2 = df[(df.a != -1) | (df.b != -1)] print(pd.concat([df, df1, df2], axis=1, keys=['original df', 'using AND (&)', 'using OR (|)',]))</code>
解釋:
意外行為源自於邏輯運算子在 pandas 索引上下文中的解釋方式。
AND 運算子:
或運算子:
附加說明:
以上是為什麼具有多個條件的 Pandas 索引會表現出意外的行為?的詳細內容。更多資訊請關注PHP中文網其他相關文章!