An alternative is to use sample
from StatsBase.jl:
@pipe df |>
groupby(_, :item) |>
_[sample(1:length(_), 2, replace=false)] |>
DataFrame
if you accept a random fraction q
from your DataFrame
(not a fixed number) then it is even easier:
@pipe df |>
groupby(_, :item) |>
combine(sdf -> rand() < q ? sdf : DataFrame(), _)
CLICK HERE to find out more related problems solutions.