Как добавить столбец в сгруппированный фрейм данных в Pandas
При анализе данных часто необходимо группировать данные и выполнять вычисления каждую группу. Pandas предлагает удобный способ сделать это с помощью функции группировки. Одной из распространенных задач является подсчет значений столбца в каждой группе и добавление столбца, содержащего эти значения, в фрейм данных.
Рассмотрим фрейм данных df:
df = pd.DataFrame({'c':[1,1,1,2,2,2,2],'type':['m','n','o','m','m','n','n']})
Чтобы подсчитать значения типа для каждого c, мы можем использовать функцию value_counts для сгруппированного фрейма данных:
g = df.groupby('c')['type'].value_counts().reset_index(name='t')
Это создает новый кадр данных g со счетчиками групп. Чтобы добавить столбец в g с размером каждой группы, мы можем использовать функцию преобразования:
g['size'] = df.groupby('c')['type'].transform('size')
transform применяет функцию к каждой группе в исходном кадре данных и возвращает серию с индексом, выровненным по исходному кадру данных. В этом случае мы используем функцию размера, чтобы подсчитать количество элементов в каждой группе и присвоить его новому размеру столбца. Результирующий фрейм данных g теперь будет выглядеть так:
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
Это демонстрирует простой способ добавления нового столбца в сгруппированный фрейм данных на основе результатов групповой агрегации.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3