У меня есть два кадра данных, к которым я присоединяюсь, чтобы увидеть активных людей. Есть люди, которые перестают быть активными, и я использую один из фреймов данных, чтобы заполнить другой.
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 человек. , было бы хорошо не выбирать только первые строки, но, возможно, все остальные или какие-то случайные условия. Что я могу изменить, чтобы работать так, как я объяснил?