SciRuby / daru

Data Analysis in RUby
BSD 2-Clause "Simplified" License
1.03k stars 139 forks source link

Ability pivot table and keep the group_by columns in the DataFrame #358

Open info-rchitect opened 7 years ago

info-rchitect commented 7 years ago

Hi,

I noticed the pivot_table method removes group_by columns and uses them as the index in the newly created DF. Is there a way to do the pivot table and keep the group_by columns in the resulting DF? This would ensure any columns dependent on the group_by columns maintain their source of data.

regards

zverok commented 7 years ago

Makes sense.

info-rchitect commented 7 years ago

I will take a shot at it

geekodour commented 3 years ago

i come from the future to offer a solution to dem lost souls like me:

group_key = %i[a b c]
df = df.pivot_table(index: group_key, vectors: %i[x], agg: :sum, values: :value_col)
metric_vectors = df.vectors.to_a.map { |v| v.second.to_sym } # specific to my usecase
df.vectors = Daru::Index.new(metric_vectors)
df.index.name = group_key
df.reset_index