Цикл, чтобы выбрать строки, пока я не достигну целевого числа - PullRequest
1 голос
/ 04 ноября 2019

У меня есть два кадра данных, к которым я присоединяюсь, чтобы увидеть активных людей. Есть люди, которые перестают быть активными, и я использую один из фреймов данных, чтобы заполнить другой.

mass    pnr                                         freq
1        [40666303, 68229102, 35784905, 47603805]    4
54       [17182402]                                  1
234      [07694901, 35070201, 36765601]              3

Другая таблица выглядит так же, мне просто нужно выбрать достаточно людей, чтобы достичь цели 7500-7600people (40666303 - это один человек, а «freq» - это количество людей в списке. Неважно, что такое «масса», мне просто нужно, когда сумма «freq» находится между 7500 и 7600). чтобы остановиться. Теперь мне нужно 400 человек, но в следующем месяце может понадобиться 20 человек, каждый месяц это отличается. По сути, мой код теперь удаляет неактивных людей, а когда он удаляет их, мне нужно заменить их активными. При первом запуске процесса я использовал этот код для выбора начальных 7500 человек:

target = 7500
freq_sum = sum(mass_grouped3['freq'])
new_mass_not_in_whitelist1['records_to_select'] = [math.ceil(int((el * target ) / freq_sum )) for el in new_mass_not_in_whitelist1['freq']]

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...