回答編集履歴
1
補足
answer
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
`or`とのタイプミスだと思いますが、
|
4
4
|
`or`と`|`は全然違います。`|`は二項演算子で、その扱うデータのクラスで`__or__`というメソッド名で定義された処理をします。pandasをお使いだと思いますが、pandasのクラスで`__or__`は定義されています。データフレームの要素を個別に`|`して、結果をデータフレームとして返すように定義されているようです。
|
5
5
|
|
6
|
-
`or`は制御構造で、左項を評価して
|
6
|
+
`or`は制御構造で、左項を評価して真偽値に変換して`True`なら(返還前の)左項を結果とし(右項は評価しない)、`False`なら右項を評価してそれを結果とします。
|
7
7
|
|
8
|
+
そのエラーは、データフレームが単一の真偽値に変換できないというエラーです。「複数の値からどうやって単一の真偽値に変換するか」を明示する必要があります。変換したとしてもそれはデータフレームじゃないので、`|`の結果と同じにはなりません。
|
9
|
+
|
8
|
-
左項と右項が両方とも(副作用の無い)
|
10
|
+
左項と右項が両方とも(副作用の無い)真偽値の時は`or`と`|`は同じですかね。
|