我有一个如下的样本数据框:
data = pd.DataFrame({'Date':[20210101,20210102,20210103,20210104,20210105],'coef1':[1,2,5,4,3],'coef2':[1,1,2,6,3],'coef3':[1,1,1,1,1]})
如果这些值不等于1,我希望对'coef1','coef2'和'coef3'求平均值。
我编写了一个函数并将其应用于我的数据框,并获得了所需的输出,但是我想要一种具有Python特色的方法来实现这一点。
def final_coef(x):
coef_list = []
if x['coef1'] == 1:
pass
else:
coef_list.append(x['coef1'])
if x['coef2'] == 1:
pass
else:
coef_list.append(x['coef2'])
if x['coef3'] == 1:
pass
else:
coef_list.append(x['coef3'])
return np.mean(coef_list)
data['Final_coef'] = data.apply(lambda row: final_coef(row),axis = 1)