私は、次のコードを持っている:ZeroDivisonErrorを処理する最良の方法は?
def chunk_trades(A):
last = A[0]
new = []
for x in A.iteritems():
if np.abs((x[1]-last)/last) > 0.1:
new.append(x[1])
last = x[1]
else:
new.append(last)
s = pd.Series(new, index=A.index)
return s
時々last
はゼロにすることができます。この場合、ちょうどlast
がほぼゼロであるかのように、うまくいくようにしたいと思います。
最もクリーンな方法は何ですか?
'last'が0の場合、' else'ブロックではなく 'if'ブロックを実行しますか? –
'最後の== 0またはnp.abs(...)> 0.1'の場合は?あるいは、記述したとおりに 'epsilon = 0.0000001'を定義し、' /(最後かε) 'を実行してください。 'last == 0 'のときはfalseとみなされ、' epsilon'が代わりに使用されます。 – Bakuriu
そうです、ifブロックを実行します。 – cjm2671