Сохранение других столбцов во время операций группировки
При выполнении операции группировки с кадром данных pandas часто необходимо сохранять столбцы, которые не участвуют в процессе группировки или агрегирования. По умолчанию эти другие столбцы удаляются после завершения операции. Это может быть проблематично, если сохраняемые столбцы содержат ценную информацию.
Рассмотрим следующий фрейм данных:
item diff otherstuff 0 1 2 1 1 1 1 2 2 1 3 7 3 2 -1 0 4 2 1 3 5 2 4 9 6 2 -6 2 7 3 0 0 8 3 2 9
Если бы мы сгруппировали фрейм данных по столбцу «item» и нашли минимальное значение столбца «diff», результирующий фрейм данных выглядел бы так:
item diff 0 1 1 1 2 -6 2 3 0
Обратите внимание, что столбец «Другое» удален. Чтобы сохранить этот столбец, мы можем использовать метод idxmin(), чтобы получить индексы элементов минимального различия, а затем выбрать их:
>>> df.loc[df.groupby("item")["diff"].idxmin()] item diff otherstuff 1 1 1 2 6 2 -6 2 7 3 0 0 [3 rows x 3 columns]
Другой метод — отсортировать фрейм данных по столбцу «diff», а затем взять первый элемент в каждой группе элементов:
>>> df.sort_values("diff").groupby("item", as_index=False).first() item diff otherstuff 0 1 1 2 1 2 -6 2 2 3 0 0 [3 rows x 3 columns]
Оба этих метода дадут желаемый результат, сохраняя при этом столбец «прочее». Имейте в виду, что результирующие индексы могут отличаться, даже если содержимое строки одинаковое.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3