Wie berechnen die gewichtete Summe aller Elemente in einer Zeile in pandas?

Habe ich ein Pandabären-Daten-frame mit mehreren Spalten. Ich will eine neue Spalte erstellen weighted_sum von den Werten in der Zeile und eine weitere Spalte vector-dataframe weight

weighted_sum sollte den folgenden Wert haben:

row[weighted_sum] = row[col0]*weight[0] + row[col1]*weight[1] + row[col2]*weight[2] + ...

Fand ich die Funktion sum(axis=1), aber es lässt mich nicht multiplizieren mit weight.

Bearbeiten:
Ich änderte die Dinge ein wenig.

weight sieht wie folgt aus:

     0
col1 0.5
col2 0.3
col3 0.2

df sieht wie folgt aus:

col1 col2 col3
1.0  2.2  3.5
6.1  0.4  1.2

df*weight gibt einen dataframe voller Nan Werte.

  • Können Sie zeigen einige Ihrer DataFrame und weights? Es ist nicht klar, warum Sie ein problem, dies zu tun. Wenn Sie wollen einfach nur das Skalarprodukt der Zeile Werte mit weights dann verwenden Sie die ndarray.dot Methode: row.values.dot(weights.values).
InformationsquelleAutor ask | 2013-08-24
Schreibe einen Kommentar