Как я могу найти комбинацию строк из таблицы, где для наименьшего числа возможных строк сумма каждого столбца должна быть больше, чем число? - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть dataFrame с 5 столбцами и 350 строками, в которых представлены несколько чисел. Я хочу получить другую таблицу с подмножествами строк справочной таблицы, где в этой вторичной таблице 1) сумма каждого столбца должна быть больше указанного c числа (для каждого столбца указано c число) 2) и в то же время я хочу взять как можно меньше строк для выполнения условия 1 поэтому я написал алгоритм в python, так что для всех oop, повторяющихся от i = 1 до i = 350, он получает подмножества числа i строк. После этого проверяется, выполнено ли условие (1) для одного из созданных множеств. Как только он находит набор, который удовлетворяет условию (1), он прерывает итерацию. Краткое описание алгоритма выглядит следующим образом:

for i in np.arange(1:350):
        Sets_Of_the_Iteration_i=Choose sets of   i rows from 350 rows 
        if ( condition 1 is fulfilled for one of the sets):
                                   Take it as the answer 
                                    Break the Loop 
       else:
                                   Continue the iterations in the Loop 


Но с ростом числа наборов в каждой итерации также растет. следовательно, P C должен выполнять большое количество вычислений, и, безусловно, время выполнения очень велико, и требуется большой объем памяти. Есть ли какой-либо метод или другой алгоритм для решения этих проблем? или, по крайней мере, для улучшения проблемы времени выполнения или недостатка памяти?

...