2016-08-30 4 views
2

Ich habe eine schwere Zeit mit diesem - nicht sicher warum ... vielleicht ist es die späte Stunde.Wie multipliziere ich eine Spalte iterativ?

Ich habe einen Datenrahmen in pandas wie folgt:

1  10 
2  11 
3  20 
4  5 
5  10 

Ich möchte für jede Zeile des Multiplikanden für jede Zeile darüber berechnen. Zum Beispiel möchte ich in Zeile 3 10 * 11 * 20 oder 2.200 berechnen.

Wie mache ich das?

+1

Sie möchten ein kumulatives Produkt. Sie können dies wahrscheinlich erreichen, indem Sie eine "numpy.cumprod" – pylang

Antwort

2

Verwenden Sie cumprod.

Beispiel:

df = pd.DataFrame({'A': [10, 11, 20, 5, 10]}, index=range(1, 6)) 
df['cprod'] = df['A'].cumprod() 
+0

Beautiful. Danke dir und @pylang für deine Hilfe. – user3047520

+0

@ user3047520 Prost, bitte akzeptieren Sie die Antwort (klicken Sie auf das Häkchen unter dem Abstimmpfeil), wenn es Ihr Problem gelöst hat. – bananafish

1

Hinweis, da Ihr Beispiel ist nur eine einzelne Spalte kann ein kumulatives Produkt kurz und bündig mit einem Series erfolgen:

import pandas as pd 

s = pd.Series([10, 11, 20, 5, 10]) 
s 

# Output 
0 10 
1 11 
2 20 
3  5 
4 10 
dtype: int64 

s.cumprod() 

# Output 
0  10 
1  110 
2  2200 
3  11000 
4 110000 
dtype: int64 

Kudos zum Lokalisieren der inhärenten @bananafish cumprod Methode.

Verwandte Themen