0
나는 다음과 같은 dataframe 있습니다페어 곱셈과 행 반복을 결합
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 또는 숫자입니다.
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
: 그래서 결국은 같을 것이다
USA index_in[i] = USA index_in[i-1] * (1 + in_scenario_USA)[i]
: 나는 1을 유지하기 위해 최초의 null 이외의 값이 내 두 번째 열을 부탁하고 이후의 각 값은 다음 공식으로 설명 할 수있다
많은 루프를 시도했지만 가장 가까운 것이 정확하다고 생각하지만 결국에는 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])
도움 주셔서 감사합니다.
은 매력처럼 작동합니다. 정말 고맙습니다! –