[python] Peewee에서 데이터 그룹화하기: group_by()
데이터베이스 ORM(객체 관계 매핑) 도구인 Peewee는 파이썬에서 사용하기 쉬운 API를 제공하여 데이터베이스와의 상호 작용을 간단하게 만들어줍니다. Peewee를 사용하여 데이터를 쿼리하고 분석할 때 종종 데이터를 그룹화해야 할 때가 있습니다.
Peewee에서는 group_by()
메서드를 사용하여 데이터를 그룹화할 수 있습니다. 이를 통해 데이터를 특정 열에 따라 그룹으로 묶을 수 있으며, 그룹별로 집계 함수를 사용하여 계산할 수도 있습니다.
group_by()
메서드 사용하기
from peewee import *
# 데이터베이스 연결 설정
database = SqliteDatabase('my_database.db')
# 데이터베이스 모델 정의
class Person(Model):
name = CharField()
age = IntegerField()
class Meta:
database = database
# 데이터베이스 테이블 생성
database.create_tables([Person])
# 데이터 추가하기
Person.create(name='John', age=25)
Person.create(name='Jane', age=30)
Person.create(name='Bob', age=25)
Person.create(name='Alice', age=35)
# 나이별로 그룹화하여 카운트하기
query = Person.select(Person.age, fn.COUNT(Person.id).alias('count')).group_by(Person.age)
for result in query:
print(f"age: {result.age}, count: {result.count}")
이 예제에서는 Person
테이블에서 나이별로 그룹화하여 각 그룹의 개수를 출력하는 방법을 보여줍니다. group_by()
메서드를 사용하여 나이 열을 그룹화 기준으로 지정하고, COUNT()
함수와 alias()
메서드를 사용하여 각 그룹의 개수를 계산하고 출력합니다.
결과 확인하기
age: 25, count: 2
age: 30, count: 1
age: 35, count: 1
위의 예제에서는 25세 그룹에 2명, 30세 그룹에 1명, 35세 그룹에 1명이 있음을 확인할 수 있습니다.
결론
Peewee의 group_by()
메서드를 사용하면 데이터베이스에서 데이터를 그룹화할 수 있습니다. 그룹별로 집계 함수를 사용하여 원하는 계산을 수행할 수 있으며, 이를 통해 데이터 분석이나 보고서 작성 등 다양한 작업에 유용하게 활용할 수 있습니다.