ホームページ > バックエンド開発 > Python チュートリアル > Pandas Boolean インデックス作成: なぜ「and」の代わりに「&」を使用するのでしょうか?

Pandas Boolean インデックス作成: なぜ「and」の代わりに「&」を使用するのでしょうか?

Linda Hamilton
リリース: 2024-12-13 03:45:10
オリジナル
138 人が閲覧しました

Pandas Boolean Indexing: Why Use

Pandas でのブール インデックス作成の論理演算子

Pandas でブール インデックス作成を使用する場合は、論理演算子の違いを理解することが重要です。 &" そして"and".

質問: 次のステートメントはエラーなしで機能するのはなぜですか:

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)]
ログイン後にコピー

答え:

「and」演算子Python では、オペランドを暗黙的にブール値に変換します。ただし、NumPy 配列 (および NumPy 配列に基づく Pandas シリーズ) を扱う場合、この変換はあいまいさを引き起こす可能性があります。

複数の要素を含む配列の真の値を評価する場合、評価すべきかどうかは不明です。次の場合に True とみなされます:

  • その要素がすべて True
  • その要素のいずれかTrue
  • 長さがゼロではありません

この曖昧さを避けるために、NumPy と Pandas では、「any()」、「all()」、「all()」を使用した明示的なブール評価が必要です。

ブール値のインデックス作成の場合、ブール値の評価は必要ありません。要素ごとの論理演算。ここで、「&」演算子が登場します。

「&」演算子は、要素ごとの論理 AND 演算を実行します。各要素が入力配列内の対応する要素の論理積の結果であるブール配列を返します。

例:

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
ログイン後にコピー

この例では、「&」演算子を使用して、「x」列と「x」列の両方が含まれる行を検索します。 「y」列は指定された基準を満たしています。

以上がPandas Boolean インデックス作成: なぜ「and」の代わりに「&」を使用するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート