Arhn - архитектура программирования

Как сохранить исходный индекс DataFrame после группировки по 2 столбцам?

Есть ли способ сохранить исходный индекс моего большого фрейма данных после выполнения groupby? Причина, по которой мне это нужно, заключается в том, что мне нужно выполнить внутреннее слияние с моим исходным df (после моей группы), чтобы восстановить эти потерянные столбцы. И значение индекса - единственный «уникальный» столбец, в который нужно выполнить слияние. Кто-нибудь знает, как я могу этого добиться?

Мой DataFrame довольно большой. Моя группа выглядит так:

df.groupby(['col1', 'col2']).agg({'col3': 'count'}).reset_index()

Это удаляет мои исходные индексы из исходного фрейма данных, который я хочу сохранить.


  • Когда вы группируете данные, какой индекс вы хотите иметь в каждой строке? Скорее всего, каждая группа объединит множество строк в исходном фрейме данных. Ожидаете ли вы, например, списка индексов, относящихся к группе? 11.03.2018
  • да! это то, что я ищу 11.03.2018

Ответы:


1

Я думаю, вы ищете трансформации в этой ситуации:

df['count'] = df.groupby(['col1', 'col2'])['col3'].transform('count')
11.03.2018
  • согласно комментариям, он хочет знать, какие индексы внесли вклад в каждую группу 11.03.2018
  • Это кажется наиболее оптимальным решением для Pandas 0.25.1. 28.08.2019

  • 2

    Вы можете поднять индекс до столбца с помощью reset_index. Затем объедините свой индекс в кортеж с помощью agg вместе с объединением count.

    Ниже приведен минимальный пример.

    import pandas as pd, numpy as np
    
    df = pd.DataFrame(np.random.randint(0, 4, (50, 5)),
                      index=np.random.randint(0, 4, 50))
    
    df = df.reset_index()
    
    res = df.groupby([0, 1]).agg({2: 'count', 'index': lambda x: tuple(x)}).reset_index()
    
    #     0  1  2            index
    # 0   0  0  4     (2, 0, 0, 2)
    # 1   0  1  4     (0, 3, 1, 1)
    # 2   0  2  1             (1,)
    # 3   0  3  1             (3,)
    # 4   1  0  4     (1, 2, 1, 3)
    # 5   1  1  2           (1, 3)
    # 6   1  2  4     (2, 1, 2, 2)
    # 7   1  3  1             (2,)
    # 8   2  0  5  (0, 3, 0, 2, 2)
    # 9   2  1  2           (0, 2)
    # 10  2  2  5  (1, 1, 3, 3, 2)
    # 11  2  3  2           (0, 1)
    # 12  3  0  4     (0, 3, 3, 3)
    # 13  3  1  4     (1, 3, 0, 1)
    # 14  3  2  3        (3, 2, 1)
    # 15  3  3  4     (3, 3, 2, 1)
    
    11.03.2018
  • Насколько я понимаю вопрос ОП .. это правильный ответ. 21.08.2019
  • Действительно правильный ответ1 09.09.2019

  • 3

    Вы не должны использовать reset_index (), если хотите сохранить исходные индексы.

    11.03.2018
  • это не работает, даже если reset_index () там нет, groupby не сохраняет исходные индексы 11.03.2018
  • Вы правы, это не решит проблему. Виноват. Дай мне посмотреть, смогу ли я найти какое-нибудь решение. 11.03.2018
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..