我们收到错误-“在log2中除以零” 如果该值小于零。即使使用where语句免除非正值,我也面临错误。
a = pd.Series([1,0,5,6,8])
np.where(a<=0, 1, np.log2(a))
答案 0 :(得分:2)
在计算a
中的值为非正数时应替换的值时,将调用log2
并将其应用于a
。不过,这实际上并不会影响您的输出。要消除此错误,可以先将非正值替换为1,然后执行log2
。
答案 1 :(得分:1)
尝试以下操作:
import pandas as pd
import numpy as np
a = pd.Series([1,0,5,6,8])
for digit in a:
np.where(digit<=0, 1, np.log2(digit))
问题似乎在于您是否愿意
np.where(a<=0, 1, np.log2(a))
它将整个系列视为不是通过a的迭代。