0
と行の繰り返しを組み合わせ、私は次のデータフレームを持っている:はペアごとの乗算
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
最初の列は、一ヶ月の割合リターンです。私のシナリオに基づいて、それは0か数字です。私は1のままにその最初の非NULL値を持つことが、私の第二のカラムを希望して、後続の各値は以下の式で説明することができますので、最後に、それは次のようになり
USA index_in[i] = USA index_in[i-1] * (1 + in_scenario_USA)[i]
:
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
私は多くのループを試しましたが、私が一番近いと感じるものはこれですが、最後にはNaN値しか得られません。
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])
ありがとうございました。
は魅力的です。どうもありがとうございます! –