Найдите наиболее частую комбинацию категориальной переменной в Python - PullRequest
0 голосов
/ 29 мая 2020

У меня есть следующие структуры таблиц:

StudentId        TestName       TestScore
    1                A              65
    1                B              65
    1                C              65

    2                C              65
    2                D              65

    3                D              65
    3                B              65

    4                C              65
    4                B              65
    4                D              65

Что мне нужно сделать, так это вытащить наиболее распространенные комбинации TestNames среди всех студентов, сдавших не менее 3 тестов. Итак, в этом случае наиболее распространенными комбинациями будут:

    TestCombination                  Frequency
         BC                     2 students (student 1,4)

Вы заметите, что BD также имеет частоту 2, но поскольку студент 3 сдал всего 2 теста, его оценки не делать вклад. Однако, если бы порог составлял 2 теста, то ожидаемый результат был бы следующим:

    TestCombination                  Frequency
         BC                     2 students (student 1,4)
         BD                     2 students (student 3,4)
         CD                     2 Students (student 2,4)

Есть 38 тестов, поэтому просто выполнение комбинаций не вариант, и не все комбинации существуют.

Вне фильтрации студентов по количеству уникальных записей TestName. Я не знаю, как лучше всего двигаться вперед, но при этом эффективно. И я надеюсь, что это не проблема P vs NP.

Есть расширение этого, которое находит всех учеников, которые приняли данную комбинацию. Итак, если бы у меня была комбинация

CB, то возврат был бы

    TestCombination                  Student
          CB                            1
          CB                            4
...