Bonjour,



Je retranscrit un code sas vers python . Je souhaiterais savoir si vous connaissez la fonction ou le code pour effectuer un first by ou last by en python

en sas cela se fait de cette manière --> https://thesasreference.wordpress.co...06/first_last/

Connaissez vous également la fonction pour effectuer un retain ?

Voici un exemple:




Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 data cpt(keep = cinf_no 
top2 ouv2 ancien2 ancimp2 arch2 ade2 top15 ouv15 ancien15 ancimp15 arch15 ade15
top26 ouv26 ancien26 ancimp26 arch26 ade26 top30 ouv30 ancien30 ancimp30 arch30 ade30
top50 ouv50 ancien50 ancimp50 arch50 ade50 top120 ouv120 ancien130 ancimp120 arch120 ade120
top130 ouv130 ancien130 ancimp130 arch130 ade130 top428 ouv428 ancien428 ancimp428 arch428 ade428
top448 ouv448 ancien448 ancimp448 arch448 ade448 top10 ouv10 ancien10 ancimp10 arch10 ade10
top14 ouv14 ancien14 ancimp14 arch14 ade14 top4 ouv4 ancien4 ancimp4 arch4 ade4
top6 ouv6 ancien6 ancimp6 arch6 ade6 top9 ouv9 ancien9 ancimp9 arch9 ade9
ancieng ancimpg nbouvg nbcomptes nbarchg
);
    set comptes;
    by cinf_no;
    length
            top2 3. datouv2 8. ouv2 3. arch2 3. datimp2 8. ade2 3.
            top15 3. datouv15 8. ouv15 3. arch15 3. datimp15 8. ade15 3.
            top26 3. datouv26 8. ouv26 3. arch26 3. datimp26 8. ade26 3.
            top30 3. datouv30 8. ouv30 3. arch30 3. datimp30 8. ade30 3.
            top50 3. datouv50 8. ouv50 3. arch50 3. datimp50 8. ade50 3.
            top120 3. datouv120 8. ouv120 3. arch120 3. datimp120 8. ade120 3.
            top130 3. datouv130 8. ouv130 3. arch130 3. datimp130 8. ade130 3.
            top428 3. datouv428 8. ouv428 3. arch428 3. datimp428 8. ade428 3.
            top448 3. datouv448 8. ouv448 3. arch448 3. datimp448 8. ade448 3.
            top10 3. datouv10 8. ouv10 3. arch10 3. datimp10 8. ade10 3.
            top14 3. datouv14 8. ouv14 3. arch14 3. datimp14 8. ade14 3.
            top4 3. datouv4 8. ouv4 3. arch4 3. datimp4 8. ade4 3.
            top6 3. datouv6 8. ouv6 3. arch6 3. datimp6 8. ade6 3.
            top9 3. datouv9 8. ouv9 3. arch9 3. datimp9 8. ade9 3.
        	datouvg 8. datimpg 8.;
 
	retain 
            top2 datouv2 ouv2 arch2 datimp2 ade2
            top15 datouv15 ouv15 arch15 datimp15 ade15 
            top26 datouv26 ouv26 arch26 datimp26 ade26
            top30 datouv30 ouv30 arch30 datimp30 ade30
            top50 datouv50 ouv50 arch50 datimp50 ade50
            top120 datouv120 ouv120 arch120 datimp120 ade120
            top130 datouv130 ouv130 arch130 datimp130 ade130
            top428 datouv428 ouv428 arch428 datimp428 ade428
            top448 datouv448 ouv448 arch448 datimp448 ade448
            top10 datouv10 ouv10 arch10 datimp10 ade10
            top14 datouv14 ouv14 arch14 datimp14 ade14
            top4 datouv4 ouv4 arch4 datimp4 ade4
            top6 datouv6 ouv6 arch6 datimp6 ade6 
            top9 datouv9 ouv9 arch9 datimp9 ade9
        	datouvg datimpg 0;
 
    if first.cinf_no then do;
			top2=0; datouv2="01jan2020"D; ouv2=0; arch2=0; datimp2=.; ade2=0;
            top15=0; datouv15="01jan2020"D; ouv15=0; arch15=0; datimp15=.; ade15=0; 
            top26=0; datouv26="01jan2020"D; ouv26=0; arch26=0; datimp26=.; ade26=0;
            top30=0; datouv30="01jan2020"D; ouv30=0; arch30=0; datimp30=.; ade30=0;
            top50=0; datouv50="01jan2020"D; ouv50=0; arch50=0; datimp50=.; ade50=0;
            top120=0; datouv120="01jan2020"D; ouv120=0; arch120=0; datimp120=.; ade120=0;
            top130=0; datouv130="01jan2020"D; ouv130=0; arch130=0; datimp130=.; ade130=0;
            top428=0; datouv428="01jan2020"D; ouv428=0; arch428=0; datimp428=.; ade428=0;
            top448=0; datouv448="01jan2020"D; ouv448=0; arch448=0; datimp448=.; ade448=0;
            top10=0; datouv10="01jan2020"D; ouv10=0; arch10=0; datimp10=.; ade10=0;
            top14=0; datouv14="01jan2020"D; ouv14=0; arch14=0; datimp14=.; ade14=0;
            top4=0; datouv4="01jan2020"D; ouv4=0; arch4=0; datimp4=.; ade4=0;
            top6=0; datouv6="01jan2020"D; ouv6=0; arch6=0; datimp6=.; ade6=0; 
            top9=0; datouv9="01jan2020"D; ouv9=0; arch9=0; datimp9=.; ade9=0;
        	datouvg="01jan2020"D;
        	datimpg=.;
    end;
run;

Merci d'avance pour votre aide