У меня есть отсортированный Dataframe с 4 столбцами, как показано ниже. Я пытаюсь отфильтровать свой фрейм данных таким образом, чтобы для каждой комбинации (Var1, Var2, Var3) я оставил 2 первых значения disctint для Var4. Например, первая комбинация (Var1, Var2, Var3), которую я имею в моем Dataframe, - (A, B, C). Два первых отличных значения для этой комбинации - значение_1 и значение_2. Вторая комбинация (Var1, Var2, Var3) - (A, C, C). У меня есть только один тип значения для этой комбинации, значение_14. Etc ...
Ввод:
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
Ввод:
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
Обратите внимание, что мой фрейм данных содержит 5 миллионов строк. Пока я нашел решение с использованием цикла, но это занимает почти час.