«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу поддерживать другие столбцы в DataFrame Pandas во время операции группировки?

Как я могу поддерживать другие столбцы в DataFrame Pandas во время операции группировки?

Опубликовано 8 ноября 2024 г.
Просматривать:594

How can I maintain other columns in a Pandas DataFrame during a groupby operation?

Сохранение других столбцов во время операций группировки

При выполнении операции группировки с кадром данных 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