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

Как добавить столбец с помощью преобразования Pandas в GroupBy DataFrames?

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

How to Add a Column Using Pandas Transform in GroupBy DataFrames?

Добавить столбец в DataFrame GroupBy с помощью Pandas Transform

При работе с операциями группировки в pandas часто бывает полезно добавить новый столбец в результирующий фрейм данных. Один из способов добиться этого — использовать функцию .map(), как показано в примере. Однако альтернативный и более простой подход — использовать функцию .transform().

.transform() позволяет нам применять функцию к каждой группе в кадре данных и возвращать серию с результатами. Возвращаемая серия будет иметь индекс, совмещенный с исходным фреймом данных.

Для иллюстрации давайте начнем с предоставленного фрейма данных:

df = pd.DataFrame({'c': [1, 1, 1, 2, 2, 2, 2], 'type': ['m', 'n', 'o', 'm', 'm', 'n', 'n']})

Наша цель — посчитать значения типа для каждого c и добавить столбец размером c.

g = df.groupby('c')['type'].value_counts().reset_index(name='t')

Этот код подсчитывает значения для каждой группы и создает новый столбец с именем t.

Чтобы добавить столбец размера с помощью .transform(), мы можем выполните следующие действия:

g['size'] = df.groupby('c')['type'].transform('size')

.transform('size') применяет функцию размера к каждой группе, которая возвращает размер каждой группы. Полученная серия выравнивается по индексу исходного фрейма данных, что позволяет нам добавить ее в качестве нового столбца в g.

Выходными данными будет фрейм данных с дополнительным столбцом с именем size:

   c type  t  size
0  1    m  1     3
1  1    n  1     3
2  1    o  1     3
3  2    m  2     4
4  2    n  2     4

Использование .transform() обеспечивает более краткий и простой способ добавить столбец обратно в исходный фрейм данных из агрегирования по группам.

Заявление о выпуске Эта статья перепечатана по адресу: 1729308259. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3