Python произвольно выбирает строки, пока критерии не будут выполнены - PullRequest
0 голосов
/ 26 октября 2018

У меня есть фрейм данных с несколькими идентификаторами, а затем столбец для денег, подобный этому,

Id1     Id2     Id3     Money
1       10      13      10000
2       15      12      12500
3       20      11      60000

Мне нужен скрипт для случайного выбора строк, пока я не достигну 80 миллионов долларов.Я предполагаю, что цикл while, такой как ...

while sum(money) < 80000000:
    df.sample()

1 Ответ

0 голосов
/ 26 октября 2018

Чтобы, возможно, перефразировать ваш вопрос, кажется, вы ищете случайную выборку строк, в которой сумма Money составляет <80000000. Один из способов сделать это - использовать <code>.sample() длятасование в сочетании с .cumsum():

>>> reordered = df.sample(n=df.shape[0])
>>> lim = reordered[reordered.Money.cumsum() < 80000000]

Это будет выборка без замены.

Возможно, это не самый эффективный способ памяти по сравнению с последовательным взятием строк, носледует сделать что-то для разумного размера.

...