Bonjour,
A partir de cette table qui comprend une valeur, une date et l'identifiant pour 2000 individus je souhaite calculer des ratios propre à chaque individus.
J'ai pensé a procéder de cette manière mais ca ne semble pas bon. Pandas ne me sort pas le calcul de la volatilité. Et je ne pense pas que itérer un df pour chaque ID soit la meilleure solution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 data = dict() for unique in MV['ID_Perf'].unique(): data[unique] = MV.loc[MV['ID_Perf']==unique] data[unique]['Perf'] = data[unique]['VL']/data[unique]['VL'].shift(1) -1 data[unique]['Volat'] = (np.std(data[unique]['Perf'])*252**0.5)
Cette méthode non plus ne donne rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 def std(grp): grp = grp / (grp.shift() - 1) return grp.std() * 252**0.5 std = (MV.groupby('ID_Perf')['VL'].apply(std) .rename('Volat') ) df = MV.join(std, on='ID_Perf') check = df.loc[df.loc[:,'ID_Perf']=='0P00000ARS'] check
De quelle manière je dois m'y prendre pour calculer des ratios par ID en série temporelle ? Merci
Partager