Я новый пользователь панд. Я прошел через справочные документы и пробовал различные эксперименты (groupby(), multiindex, value_cuounts()). Но я не могу получить желаемый конечный результат.pandas: проблема преобразования данных в агрегированный dataframe
Мой dataframe выглядит следующим образом (это время индексируется):
DATE, GROUP, X, Y, STATUS
2014-01-01 A 0 0 PASS
2014-01-01 A 0 1 FAIL
2014-01-01 A 1 0 PASS
2014-01-02 B 0 0 PASS
2014-01-02 B 0 1 PASS
2014-01-02 B 1 1 FAIL
....
В столбце 'Статус' имеет DTYPE = категории. Я хотел бы закончить с новым dataframe, который выглядит следующим образом:
DATE GROUP STATUS PCT
2014-01-01 A PASS 0.667
2014-01-01 A FAIL 0.333
2014-01-02 B PASS 0.667
2014-01-02 B FAIL 0.333
По существу, для каждой группы, я хочу, чтобы вычислить% всего состояния.
Я пробовал df.groupby ('GROUP'). Value_counts(), за которым следует деление на sum() для вычисления процентов. Это работает нормально. Тем не менее, я теряю индексную информацию, и я не знаю, чтобы добавить ее в новый dataframe для достижения желаемого результата выше. В пандах должен быть какой-то простой способ сделать это, но я этого не вижу.
Любые предложения приветствуются. Благодарю.
Что такое "информация о индексе"? Это в приведенном выше примере? –
Является ли это группой просто «группой»? В этом случае каждая группа имеет ровно одну дату? Если нет, то это должно быть группа по «дате» и «группе» – ShikharDua
Индекс - это «ДАТА». Как я уже упоминал, данные индексируются по дате. Также каждая группа имеет ровно одну дату. Данные для группы поступают один раз в день (дискриминатор - X, Y), а имя группы не повторяется позднее (т. Е. Оно уникально). – user4979733