Which is the result i wanted, but not the result i expected.
The result I expect in my example below is a group with an empty dataframe for each of the odd values from column a.
p.s. documentation does not indicate which will happen.
using DataFrames
function test()
m = 3
n = 4
df = DataFrame([repeat(collect(1:n), inner=m),
[rand(1:10) for _ in 1:n*m],
[rand(1:10) for _ in 1:n*m]], [:a, :b, :c])
g0 = groupby(df, :a)
println(g0)
g2 = map(sdf->filter(r->r[:a] % 2 == 0, sdf), g0)
println(g2)
end
test()
GroupedDataFrame with 4 groups based on key: a
Group 1 (3 rows): a = 1
│ Row │ a │ b │ c │
│ │ Int64 │ Int64 │ Int64 │
├─────┼───────┼───────┼───────┤
│ 1 │ 1 │ 2 │ 2 │
│ 2 │ 1 │ 3 │ 6 │
│ 3 │ 1 │ 9 │ 7 │
Group 2 (3 rows): a = 2
│ Row │ a │ b │ c │
│ │ Int64 │ Int64 │ Int64 │
├─────┼───────┼───────┼───────┤
│ 1 │ 2 │ 10 │ 9 │
│ 2 │ 2 │ 8 │ 8 │
│ 3 │ 2 │ 8 │ 2 │
Group 3 (3 rows): a = 3
│ Row │ a │ b │ c │
│ │ Int64 │ Int64 │ Int64 │
├─────┼───────┼───────┼───────┤
│ 1 │ 3 │ 10 │ 4 │
│ 2 │ 3 │ 8 │ 7 │
│ 3 │ 3 │ 3 │ 3 │
Group 4 (3 rows): a = 4
│ Row │ a │ b │ c │
│ │ Int64 │ Int64 │ Int64 │
├─────┼───────┼───────┼───────┤
│ 1 │ 4 │ 1 │ 7 │
│ 2 │ 4 │ 1 │ 4 │
│ 3 │ 4 │ 10 │ 2 │
GroupedDataFrame with 2 groups based on key: a
Group 1 (3 rows): a = 2
│ Row │ a │ a_1 │ b │ c │
│ │ Int64 │ Int64 │ Int64 │ Int64 │
├─────┼───────┼───────┼───────┼───────┤
│ 1 │ 2 │ 2 │ 10 │ 9 │
│ 2 │ 2 │ 2 │ 8 │ 8 │
│ 3 │ 2 │ 2 │ 8 │ 2 │
Group 2 (3 rows): a = 4
│ Row │ a │ a_1 │ b │ c │
│ │ Int64 │ Int64 │ Int64 │ Int64 │
├─────┼───────┼───────┼───────┼───────┤
│ 1 │ 4 │ 4 │ 1 │ 7 │
│ 2 │ 4 │ 4 │ 1 │ 4 │
│ 3 │ 4 │ 4 │ 10 │ 2 │