2016-07-21 15 views
0

Entschuldigung, wenn das eine einfache Frage ist.Pandas/Python multiplizieren Spalten für Zeile

Ich habe zwei Datenrahmen mit jeweils den gleichen Spalten. Ich muss jede Reihe im zweiten Datenfeld mit der einzigen Reihe im ersten multiplizieren.

Irgendwann wird es mehr Spalten unterschiedlichen Alters geben, also möchte ich nicht einfach mit einem Skalar multiplizieren.

Ich habe df.multiply() verwendet und weiterhin NaN für alle Werte erhalten, vermutlich weil die beiden df nicht in der Länge übereinstimmen.

Gibt es eine Möglichkeit, jede Zeile in einem Datenrahmen mit einer einzelnen Zeile in einem anderen zu multiplizieren?

age 51200000.0 70000000.0 
SFH 
0  0.75  0.25 

.

age    51200000.0 70000000.0 
Lambda         
91.0  0.000000e+00 0.000000e+00 
94.0  0.000000e+00 0.000000e+00 
96.0  0.000000e+00 0.000000e+00 
98.0  0.000000e+00 0.000000e+00 
100.0  0.000000e+00 0.000000e+00 
102.0  0.000000e+00 0.000000e+00 
...  ...   ... 
1600000.0 1.127428e+22 8.677663e+21 
+0

Sie sagen also, dass 'df.mul (DF1, Achse = 1) 'hat nicht funktioniert? – EdChum

Antwort

0

können Sie verwenden mul durch erste Reihe von df1 ausgewählt von iloc:

print (df2.mul(df1.iloc[0])) 

Probe:

print (df1) 
     51200000.0 70000000.0 
age       
0   0.75  0.25 

print (df2) 
     51200000.0 70000000.0 
age       
91.0   1.0   2.0 
94.0   5.0  10.0 
96.0   0.0   0.0 

print (df2.mul(df1.iloc[0])) 
     51200000.0 70000000.0 
age       
91.0  0.75   0.5 
94.0  3.75   2.5 
96.0  0.00   0.0 
Verwandte Themen