回答編集履歴

2

a or b の判定は、まずはaからのみなのでそのような記述に修正

2022/01/01 21:31

投稿

xail2222
xail2222

スコア1508

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- 対して、Series同士の or の演算では、a or b とした場合、まず aとb を boolに変換してチェックするようで、その際にSeriesで定義された
19
+ 対して、Series同士の or の演算では、a or b とした場合、まず aを boolに変換してチェックするようで、その際にSeriesで定義された
20
20
 
21
21
  ```__bool__```が呼び出されるようで、そこでエラーとなるようです。(```__bool__=__nonzero__```と定義されているので、ログに出るのは```__nonzero__```の方のようですが)
22
22
 
@@ -34,7 +34,7 @@
34
34
 
35
35
  | は、or は別物で、| に関しては、pandasのSeriesで実装されており要素同士の | の結果をSeriesとして返却してくれる
36
36
 
37
- or は、a or b とした場合それぞれを一旦boolに変換する処理が実行され、そのboolに変換する処理がpandasのSeriesで実装されているがエラーを返すだけの実装になっている。
37
+ or は、a or b とした場合まずaを一旦boolに変換する処理が実行され、そのboolに変換する処理がpandasのSeriesで実装されているがエラーを返すだけの実装になっている。
38
38
 
39
39
 
40
40
 

1

__が表示されていなかったので修正

2022/01/01 21:30

投稿

xail2222
xail2222

スコア1508

test CHANGED
@@ -16,11 +16,13 @@
16
16
 
17
17
 
18
18
 
19
+ 対して、Series同士の or の演算では、a or b とした場合、まず aとb を boolに変換してチェックするようで、その際にSeriesで定義された
20
+
19
- 対して、Series同士の or の演算では、a or b とした場合、まず aとb を boolに変換してチェックするようで、その際にSeriesで定義された__bool__が呼び出されるようで、そこでエラーとなるようです。(__bool__=__nonzero__と定義されているので、ログに出るのは__nonzero__の方のようですが)
21
+ ```__bool__```が呼び出されるようで、そこでエラーとなるようです。(```__bool__=__nonzero__```と定義されているので、ログに出るのは```__nonzero__```の方のようですが)
20
22
 
21
23
 
22
24
 
23
- 実際に、エラーが出ていた__nonzero__の関数をreturn Trueを返すように修正すると
25
+ 実際に、エラーが出ていた```__nonzero__```の関数をreturn Trueを返すように修正すると
24
26
 
25
27
  (order_data['status']==1) or (order_data['status']==2)
26
28