J'ai un Dataframe trié avec 4 colonnes comme ci-dessous. J'essaie de filtrer ma base de données de telle sorte que pour chaque combinaison de (Var1, Var2, Var3), je garde les 2 premières valeurs distinctes pour Var4. Par exemple, la première combinaison de (Var1, Var2, Var3) que j'ai dans mon Dataframe est (A, B, C). Les deux premières valeurs distinctes de cette combinaison sont value_1 et value_2. La deuxième combinaison de (Var1, Var2, Var3) est (A, C, C). Je n'ai qu'un seul type de valeur pour cette combinaison, à savoir la valeur_14. Etc...
Entrée :
Var1 Var2 Var3 Var4
1 A B C value_1
2 A B C value_1
3 A B C value_1
4 A B C value_1
5 A B C value_2
6 A B C value_2
7 A B C value_3
8 A B C value_3
9 A B C value_3
10 A B C value_4
11 A C C value_14
12 A C C value_14
13 A C C value_14
14 A C C value_14
15 B B C value_21
16 B B C value_21
17 B B C value_32
18 B B C value_32
19 B B C value_33
20 B B C value_43
Sortie :
Var1 Var2 Var3 Var4
1 A B C value_1
2 A B C value_1
3 A B C value_1
4 A B C value_1
5 A B C value_2
6 A B C value_2
11 A C C value_14
12 A C C value_14
13 A C C value_14
14 A C C value_14
15 B B C value_21
16 B B C value_21
17 B B C value_32
18 B B C value_32
Notez que mon dataframe contient 5 millions de lignes. J'ai trouvé une solution en utilisant une boucle jusqu'à présent mais cela prend presque une heure.