回答編集履歴
2
a or b の判定は、まずはaからのみなのでそのような記述に修正
answer
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
Series同士の | の演算は、Seriesでは各要素同士の | の演算の結果をSeriesとして返すようにで定義されています。
|
9
9
|
|
10
|
-
対して、Series同士の or の演算では、a or b とした場合、まず a
|
10
|
+
対して、Series同士の or の演算では、a or b とした場合、まず aを boolに変換してチェックするようで、その際にSeriesで定義された
|
11
11
|
```__bool__```が呼び出されるようで、そこでエラーとなるようです。(```__bool__=__nonzero__```と定義されているので、ログに出るのは```__nonzero__```の方のようですが)
|
12
12
|
|
13
13
|
実際に、エラーが出ていた```__nonzero__```の関数をreturn Trueを返すように修正すると
|
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
結局、繰り返しになりますが
|
18
18
|
| は、or は別物で、| に関しては、pandasのSeriesで実装されており要素同士の | の結果をSeriesとして返却してくれる
|
19
|
-
or は、a or b とした場合
|
19
|
+
or は、a or b とした場合まずaを一旦boolに変換する処理が実行され、そのboolに変換する処理がpandasのSeriesで実装されているがエラーを返すだけの実装になっている。
|
20
20
|
|
21
21
|
という事のようです。
|
22
22
|
|
1
__が表示されていなかったので修正
answer
CHANGED
@@ -7,9 +7,10 @@
|
|
7
7
|
|
8
8
|
Series同士の | の演算は、Seriesでは各要素同士の | の演算の結果をSeriesとして返すようにで定義されています。
|
9
9
|
|
10
|
+
対して、Series同士の or の演算では、a or b とした場合、まず aとb を boolに変換してチェックするようで、その際にSeriesで定義された
|
10
|
-
|
11
|
+
```__bool__```が呼び出されるようで、そこでエラーとなるようです。(```__bool__=__nonzero__```と定義されているので、ログに出るのは```__nonzero__```の方のようですが)
|
11
12
|
|
12
|
-
実際に、エラーが出ていた__nonzero__の関数をreturn Trueを返すように修正すると
|
13
|
+
実際に、エラーが出ていた```__nonzero__```の関数をreturn Trueを返すように修正すると
|
13
14
|
(order_data['status']==1) or (order_data['status']==2)
|
14
15
|
は処理が可能になり(order_data['status']==1)がTrueと判定される為、(order_data['status']==1)が取得されます。
|
15
16
|
|