新的使用Python :)我试图使用不同的列来规范化我的数据但是,有时会发生我用来制作除法的某些列的值为0.然后给出错误:ZeroDivisionError为零 .
我有一个dataframe mergedfs并循环遍历列来计算规范化值 .
b = 0
w = (len(files))+1 #number depending on how many csv files I have. This will determine which columns index I will use.
while b < len(files):
b += 1
if b == 1:
w += 1
mergedfs.insert(len(files)+1+b, 'NHAF R{}'.format(b), np.log10((((mergedfs.ix[:,b] / mergedfs.ix[:,w])/106)/((mergedfs.ix[:,b].sum() / (mergedfs.ix[:,w].sum())/106)) / sum(((mergedfs.ix[:,b] / mergedfs.ix[:,w])/106)/((mergedfs.ix[:,b].sum() / (mergedfs.ix[:,w].sum())/106))))))
else:
w += 2
mergedfs.insert(len(files)+1+b, 'NHAF R{}'.format(b), np.log10(((mergedfs.ix[:,b] / mergedfs.ix[:,w])/106)/((mergedfs.ix[:,b].sum() / (mergedfs.ix[:,w].sum())/106)) / sum(((mergedfs.ix[:,b] / mergedfs.ix[:,w])/106)/((mergedfs.ix[:,b].sum() / (mergedfs.ix[:,w].sum())/106)))))
ZeroDivisionError为零通常是因为有时候 . mergedfs.ix [:,b] AND mergedfs.ix [:,b]将等于0 .
有没有办法绕过它?
I have tried np.log10((((mergedfs.ix[:,b] / mergedfs.ix[:,w])/106)/((mergedfs.ix[:,b].sum() / (mergedfs.ix[:,w].sum())/106)) / sum(((mergedfs.ix[:,b] / mergedfs.ix[:,w])/106)/((mergedfs.ix[:,b].sum() / (mergedfs.ix[:,w].sum())/106)))).where(mergedfs.ix[:,b] != 0)
但是,没有成功 .
我已经在stackoverflow上搜索了很长一段时间,大多数都没有在我的代码上工作 .
非常感谢,如果你能引导我一点来解决这个问题 .
干杯!