将np.subtract应用于跳过nan的pandas中的行

时间:2016-04-15 08:51:00

标签: python pandas nan subtraction

我正在尝试创建一个函数来操作2列之间的基本操作。

所以我定义了一些lambda函数来应用于数据帧

addi=lambda x: np.round(x.sum(),2)
subt=lambda x: np.round(np.subtract.reduce(x.values),2)
prod=lambda x: np.round(x.prod(),2)
divi=lambda x: np.round(np.divide.reduce(x.values),2)

在df中,使用操作结果创建新列。实施例

co = self.df.columns[cn]#columns names
df[new_name] = self.df.loc[:, co].apply(subt,axis=1)

有GUI可以选择操作

问题是纳米值不会被滤除为减法和除法,这可能会导致纳米值。

我试图通过

对其进行修改
subt=lambda x: np.round(np.subtract.reduce(np.ma.masked_array(x.values,mask=[np.isnan(x.values)])),2)

但是我收到了这个错误

AttributeError: ("'numpy.float64' object has no attribute '_mask'", u'occurred at index 2010-01-27 15:50:00')

0 个答案:

没有答案