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

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

Linda Hamilton
リリース: 2024-12-17 21:20:19
オリジナル
116 人が閲覧しました

Pandas Boolean Indexing: Why Use `&` Instead of `and`?

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

Pandas でブール インデックス作成を実行する場合、論理演算子 & (ビット単位の AND) と (論理 AND).

ブール値に & over と を使用する理由インデックスを作成しますか?

次の例を考えてみましょう:

a = pd.DataFrame({'x': [1, 1], 'y': [10, 20]})

a[(a['x'] == 1) & (a['y'] == 10)]
ログイン後にコピー

このコードは期待どおりの結果を返します:

    x   y
0   1  10
ログイン後にコピー

ただし、& の代わりに and を使用すると、エラーが発生します:

a[(a['x'] == 1) and (a['y'] == 10)]
ログイン後にコピー
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
ログイン後にコピー

エラー

このエラーは、各シリーズ (a['x'] および a['y']) の真実性を個別に評価しようとするために発生します。ただし、これらの系列には明確なブール値がないため、曖昧な真理値エラーが発生します。

対照的に、ビット単位の & 演算子は要素単位の論理演算を実行します。これは、各要素が a['x'] と a['y'] の対応する要素間の演算の結果を表すブール配列を返します。これにより、インデックス作成用のブール マスクを作成できます。

括弧: 必須要件

& を使用する場合は括弧を使用することが必須であることに注意してください。これらがないと、& over == の演算子の優先順位が高いため、操作は正しく評価されません。

a['x'] == 1 & a['y'] == 10  # Incorrect: Triggers the error

(a['x'] == 1) & (a['y'] == 10)  # Correct: Boolean indexing works as expected
ログイン後にコピー

結論

Pandas でブール型インデックス付けを実行するときは、常に & 演算子を使用してください。要素ごとの論理演算。これにより、適切な評価が保証され、曖昧な真理値エラーが回避されます。

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

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