[python] Arrow 라이브러리를 이용한 연령 별 데이터 집계
Arrow는 파이썬에서 일반적인 날짜 및 시간 연산을 처리하기위한 강력한 라이브러리입니다. 이번 글에서는 Arrow를 사용하여 연령별 데이터를 집계하는 방법에 대해 알아보겠습니다.
Arrow 설치
먼저 Arrow를 설치해야 합니다. 파이썬 패키지 관리자인 pip를 사용하여 다음 명령어로 Arrow를 설치할 수 있습니다.
pip install arrow
데이터 준비
이 예제에서 사용할 데이터는 다음과 같은 형식으로 구성되어 있다고 가정합니다.
Name,Date of Birth
John,1990-01-01
Alice,1985-02-10
Michael,1978-05-15
...
데이터 로드
데이터를 로드하기 위해 CSV 파일을 사용하겠습니다. Arrow는 datetime 모듈과 호환되므로 CSV 파일을 로드하면 자동으로 Arrow의 날짜/시간 객체로 변환됩니다.
import arrow
import csv
data = []
with open('data.csv') as file:
reader = csv.DictReader(file)
for row in reader:
date_of_birth = arrow.get(row['Date of Birth'], 'YYYY-MM-DD')
data.append({'Name': row['Name'], 'Date of Birth': date_of_birth})
연령 계산
로드된 데이터를 기반으로 연령을 계산해보겠습니다. Arrow는 편리하게도 다른 날짜와의 차이를 쉽게 계산할 수 있는 shift()
메서드를 제공합니다.
today = arrow.now()
for entry in data:
age = today.shift(years=-entry['Date of Birth'].year).years
entry['Age'] = age
연령별 데이터 집계
이제 연령 별로 데이터를 집계해보겠습니다. 이를 위해 defaultdict
를 사용하여 각 연령 그룹에 대한 빈도수를 추적합니다.
from collections import defaultdict
age_counts = defaultdict(int)
for entry in data:
age = entry['Age']
age_counts[age] += 1
결과 출력
마지막으로 연령 별로 집계된 데이터를 출력해보겠습니다.
for age, count in sorted(age_counts.items()):
print(f"Age: {age} - Count: {count}")
이제 Arrow를 사용하여 연령 별로 데이터를 집계하는 방법을 알게 되었습니다. Arrow는 다른 날짜와 시간 연산에도 매우 유용하며, 더 복잡한 분석에 응용할 수도 있습니다.