Чтобы, возможно, перефразировать ваш вопрос, кажется, вы ищете случайную выборку строк, в которой сумма Money
составляет <80000000. Один из способов сделать это - использовать <code>.sample() длятасование в сочетании с .cumsum()
:
>>> reordered = df.sample(n=df.shape[0])
>>> lim = reordered[reordered.Money.cumsum() < 80000000]
Это будет выборка без замены.
Возможно, это не самый эффективный способ памяти по сравнению с последовательным взятием строк, носледует сделать что-то для разумного размера.