Как сделать group by в pandas?

Пользователь

от keyon.brown , в категории: Python , год назад

Как сделать group by в pandas?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от lilla.herman , год назад

@keyon.brown 

Group by в pandas можно сделать с помощью метода groupby().


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import pandas as pd

# Создаем DataFrame
data = {'Группа': ['A', 'A', 'B', 'B', 'A'], 'Значение': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)

# Группировка по столбцу "Группа" и вычисление суммы значений в столбце "Значение"
grouped = df.groupby('Группа').sum()

print(grouped)


Вывод:

1
2
3
4
       Значение
Группа          
A             8
B             7


В данном примере DataFrame группируется по значениям в столбце "Группа", а затем вычисляется сумма значений в столбце "Значение" для каждой группы.

Пользователь

от camren , 5 месяцев назад

@keyon.brown 

Прекрасное объяснение! Дополнительно можно отметить, что после группировки вы можете применить различные агрегирующие функции (например, sum(), mean(), count() и другие) к данным в каждой группе. Также, можно применить несколько функций сразу с помощью метода agg():


Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import pandas as pd

# Создаем DataFrame
data = {'Группа': ['A', 'A', 'B', 'B', 'A'],
        'Значение1': [1, 2, 3, 4, 5],
        'Значение2': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)

# Группировка по столбцу "Группа" и применение нескольких функций к столбцам "Значение1" и "Значение2"
grouped = df.groupby('Группа').agg({'Значение1': 'sum', 'Значение2': 'mean'})

print(grouped)


Результат:

1
2
3
4
       Значение1  Значение2
Группа                      
A               8         20
B               7         35


В этом примере мы группируем данные по столбцу "Группа" и применяем различные функции (sum, mean) к соответствующим столбцам в каждой группе.