J'essaie de créer une nouvelle colonne en totalisant les valeurs pondérées dans des colonnes antérieures.
Exemple P>
data2['v_tot'] = data2.loc[:,:].sum()
3 Réponses :
Essayez:
data2['v_tot'] = data2.sum(axis=1)
v1 v2 v3 v_tot 0 0.801 1.592 1.911 4.304 1 3.204 2.388 3.822 9.414 2 2.403 1.592 0.637 4.632
Cela a fonctionné, il manquait le composant (Axis = 1). Merci beaucoup.
Oui, exactement, et vous n'avez probablement pas besoin de .loc [:,:] code> (cela fonctionne avec elle, mais cela n'ajoute rien)
(pas sûr de savoir pourquoi y a-t-il des valeurs négatives dans V3 code>) Essayez:
df_new=df.mul(weights,axis=1)
df_new['v_tot']=df_new.sum(axis=1)
print(df_new)
v1 v2 v3 v_tot
0 0.801 1.592 1.911 4.304
1 3.204 2.388 3.822 9.414
2 2.403 1.592 0.637 4.632
Les colonnes de l'ensemble de données d'origine sont toutes des flotteurs.
Pourquoi les valeurs négatives en v3?