0
votes

Création de nouvelles colonnes de pandas à partir de valeurs pondérées dans d'autres colonnes

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()


2 commentaires

Les colonnes de l'ensemble de données d'origine sont toutes des flotteurs.


Pourquoi les valeurs négatives en v3?


3 Réponses :


0
votes

Essayez:

data2['v_tot'] = data2.sum(axis=1)


0 commentaires

1
votes
      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

2 commentaires

Cela a fonctionné, il manquait le composant (Axis = 1). Merci beaucoup.


Oui, exactement, et vous n'avez probablement pas besoin de .loc [:,:] (cela fonctionne avec elle, mais cela n'ajoute rien)



2
votes

(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


0 commentaires