Ich habe folgenden Datenrahmen:Kombinieren Reihe Iteration mit paarweise Multiplikation
in_scenario_USA USA index_in
month year
4 1960 NaN 0
5 1960 NaN 0
6 1960 0.000000 1.0
7 1960 0.000000 1.0
8 1960 0.000000 1.0
9 1960 0.000000 1.0
10 1960 0.000000 1.0
11 1960 0.000000 1.0
12 1960 0.000000 1.0
1 1961 0.000000 1.0
2 1961 0.025536 1.0
3 1961 0.003843 1.0
4 1961 0.019139 1.0
5 1961 0.000000 1.0
Die erste Spalte ist die prozentuale Rendite von einem Monat. Basierend auf meinen Szenarien ist es entweder 0 oder eine Zahl. Ich würde meine zweite Spalte wie seinen ersten nicht Null-Wert zu haben, auf 1 zu bleiben und dann jedem nachfolgenden Wert kann mit der folgenden Formel erläutert:
USA index_in[i] = USA index_in[i-1] * (1 + in_scenario_USA)[i]
so am Ende ist es so aussehen würde:
in_scenario_USA USA index_in
month year
4 1960 NaN 0
5 1960 NaN 0
6 1960 0.000000 1.0
7 1960 0.000000 1.0
8 1960 0.000000 1.0
9 1960 0.500000 1.5
10 1960 0.500000 2.25
11 1960 0.000000 2.25
12 1960 0.000000 2.25
1 1961 0.000000 2.25
2 1961 -0.200000 1.8
3 1961 0.100000 1.98
4 1961 0.100000 2.178
5 1961 0.000000 2.178
Ich habe viele Loops ausprobiert, aber die, die ich am nächsten fühle, um genau zu sein, ist diese, aber ich bekomme am Ende nur NaN-Werte.
for i in range(0, len(df_merged[col + ' index_in'])):
if df_merged[col + ' index_in'].iloc[i] == 1 and (df_merged[col + ' index_in'].iloc[-i] == 0):
continue
else:
df_merged[col + ' index_in'].iloc[i] = np.multiply(df_merged[col + ' index_in'].iloc[i-1], df_merged['in_scenario_' + col].iloc[i])
Danke für Ihre Hilfe.
funktioniert wie ein Charme. Ich danke dir sehr! –