Как я могу сгруппировать Pandas Dataframe по сумме баллов <= максимальное значение? - PullRequest
0 голосов
/ 20 марта 2020

У меня есть DataFrame с 2 столбцами: один из ID и один из hits этого идентификатора. Я хочу сгруппировать эти данные в группы по ID s, чья сумма hits максимально приближена к 10000.

Более простой типовой проблемой является наличие DataFrame со столбцом coin (со значениями [penny, nickle, dime, quarter] и столбцом cents, показывающими общее значение, которое эти монеты имеют в моем кармане (а не количество этой монеты: 1 никель означает 5 cents). Я хочу сгруппировать монеты в значения, максимально приближенные к 1 доллару США (100 центов), но не переходя. Кроме того, в этой задаче мы должны использовать все центы данного монета в нашей группировке (ie Я не могу просто взять 25 копеек, чтобы сложить четверть на 75 центов, чтобы получить идеальный доллар). Итак, учитывая этот DataFrame:

     coin           cents
0    penny          32
1    nickle         50
2    dime           80
3    quarter        75

... группировка, которую я ищу: 0 [пенни, никель] 1 [десять центов] 2 [квартал]

Эта группировка - единственный способ суммировать значения, близкие к 1 доллару, не переходя.

Есть ли способ достичь этой группировки, используя только функции pandas или numpy? Или я должен выполнить итерацию по фрейму данных и создать свою группу, используя код Python?

...