Yes you just need to return a “table” with column names.
With a named tuple:
combine(:b=>unique=>:b, :b => (b->(; c=mean.(map(b₀->b₀.==b, unique(b))))) => AsTable)
With a Dict:
combine(:b=>unique=>:b, :b => (b->Dict(:c=>mean.(map(b₀->b₀.==b, unique(b))))) => AsTable)