Как собрать один и тот же столбец несколько раз в Дару - PullRequest
0 голосов
/ 11 октября 2019

Я хочу получить сгруппированные агрегированные данные, но сталкиваюсь с проблемой агрегирования одного и того же столбца с несколькими функциями.

По сути, я хочу знать, есть ли способ переименовать агрегированный столбец, поэтомуне переписывает

Вот мой код

    df = Daru::DataFrame.from_activerecord(active_record,
                                           *%i[jobs.id jobs.demand_created_at jobs.quality_rating jobs.service_rating jobs.value_rating SC.name D.czso_region_id])
    df.vectors = Daru::Index.new(%i[job_id demand_created_at quality_rating service_rating value_rating specific_category_name region_id])

    # computed columns
    df[:avg_rating] = ((df[:quality_rating] + df[:service_rating] + df[:value_rating]) / 3.0)
    df[:broad_region_id] = df[:region_id].recode { |i| i[0...-1]}

    df_grouped = df.group_by([:specific_category_name, :broad_region_id, :job_id])
    df_grouped.aggregate(avg_rating: :mean, job_id: :count).aggregate(avg_rating: :mean, job_id: :count)

У меня здесь проблема:

df_grouped.aggregate(avg_rating: :mean, job_id: :count).aggregate(avg_rating: :mean, job_id: :count)

В принципе, я хочу написать что-то вроде этого (например):

df_grouped.aggregate(avg_rating: :mean, avg_rating: :std)

Однако при этом генерируется только один столбец с именем avg_rating и ошибкой

(irb):124: warning: key :avg_rating is duplicated and overwritten on line 124

Есть ли способ переименовать агрегированный столбец? Единственная идея, которая у меня есть, - дублировать столбцы, но это выглядит очень хакерским решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...