【发布时间】:2016-06-28 10:20:27
【问题描述】:
我有以下代码:
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为零,您希望执行if块,而不是else块,对吧? -
if last == 0 or np.abs(...) > 0.1?或者完全按照您的描述进行操作,定义epsilon = 0.0000001,然后执行/ (last or epsilon)。当last == 0被认为是错误的,epsilon将被使用。 -
没错,我要执行 if 块。
标签: python python-3.x