У меня есть следующий фрейм данных:
df = pd.DataFrame({'date': ['31/12/2015','31/12/2016','31/12/2017','31/12/2018',
'31/12/2019','31/12/2020','31/12/2015','31/12/2016',
'31/12/2017','31/12/2018','31/12/2019','31/12/2020'],
'season': ['S1','S1','S1','S1','S1','S1','S2','S2','S2','S2','S2','S2'],
'total' : [1,0,0,0,0.022313421,0.053791041,0,0,0.307783314,0,0,0] })
df.date= pd.to_datetime(df.date)
print(df)
date season total
0 2015-12-31 S1 1.000000
1 2016-12-31 S1 0.000000
2 2017-12-31 S1 0.000000
3 2018-12-31 S1 0.000000
4 2019-12-31 S1 0.022313
5 2020-12-31 S1 0.053791
6 2015-12-31 S2 0.000000
7 2016-12-31 S2 0.000000
8 2017-12-31 S2 0.307783
9 2018-12-31 S2 0.000000
10 2019-12-31 S2 0.000000
11 2020-12-31 S2 0.000000
Я хотел бы сделать несколько вычислений для каждой строки на основе значения, содержащегося в столбце «total», чтобы получить фрейм данных в следующем формате (пример дляпервый ряд):
date season total calculation id result
0 2015-12-31 S1 1.000000 1 x1
0 2015-12-31 S1 1.000000 2 x2
0 2015-12-31 S1 1.000000 3 x3
0 2015-12-31 S1 1.000000 4 x4
0 2015-12-31 S1 1.000000 5 x5
в основном что-то вроде:
for index, row in df.iterrows():
for i, a in enumerate(np.linspace(0,getattr(row,'total'),6)):
assing the result of the calculation to the column result
Есть идеи, как мне это сделать?Для примера столбец результата может быть оценен как a*5
в цикле.
Спасибо за вашу помощь,
Pierre