我想用下面的代码计算两个pandas列I
和{
def diff(row):
""" calculate absolute difference of this row """
return np.abs(row['I'] - row['Imean'])
spectrum['diff'] = spectrum.apply(diff, axis=1)
每当spectrum['I']
都是零,spectrum['diff']
包含所有nan
。我错过了什么?
(如果我检查spectrum['I']
的全零大小写,然后再检查spectrum['diff'] = spectrum['Imean']
,我可以避免这个错误。但还是…)
添加的信息:
好吧,我进一步调查了一下,找到了我的问题。我用曲线下的面积来规范化我的数据,并尽量避免被零除,因为我知道可能存在所有的零数据。在
^{pr2}$我的脚本没有收到运行时警告,但是如果我在Ipython控制台中运行代码,我得到RuntimeWarning: invalid value encountered in true_divide
,而{NaN
替换。如果我使用ZeroDivisionError
,也是一样。
那么在这里如何避免被零除呢?在
如果我理解正确,你可以这样做:
全零:
^{pr2}$PS as @piRSquared已经提到,在向熊猫提问时,请始终提供可重复的样本和所需的数据集
相关问题 更多 >
编程相关推荐