프로그래밍/AWK

AWK를 활용한 데이터 분석: 실습 예제와 활용 방법

shimdh 2025. 6. 7. 11:00
728x90

데이터 분석은 현대 사회에서 필수적인 역할을 하며, 다양한 분야에서 활용되고 있습니다. 그 중에서도 AWK는 데이터를 처리하고 분석하는 데 있어 매우 유용한 도구로 자리 잡고 있습니다. 이번 포스트에서는 AWK를 활용한 실제 데이터 분석 사례를 통해 그 기능과 활용 방법을 깊이 있게 살펴보겠습니다.

1. 데이터 준비

데이터 분석을 시작하기 위해서는 먼저 적절한 데이터를 준비해야 합니다. 예를 들어, CSV 형식의 간단한 판매 데이터를 가정해 보겠습니다. 이 데이터는 여러 판매자의 판매량과 가격 정보를 포함하고 있습니다.

이름,판매량,가격
홍길동,10,10000
김철수,5,15000
이영희,8,12000
박지민,12,8000

위와 같은 데이터를 sales.csv라는 파일에 저장했다고 가정합니다. 이 파일은 판매자 이름, 판매량, 그리고 각 제품의 가격 정보를 포함하고 있어, 데이터 분석을 위한 기초 자료로 활용될 수 있습니다.

2. 기본적인 통계 계산

AWK를 사용하여 이 판매 데이터에서 총 판매량과 평균 가격을 계산해 볼 수 있습니다. 다음의 명령어를 통해 간단하게 통계를 산출할 수 있습니다:

awk -F',' 'NR>1 { total_sales += $2; total_price += $3; count++ } END { print "총 판매량:", total_sales; print "평균 가격:", total_price/count }' sales.csv

설명:

  • -F',': 필드 구분자를 쉼표로 설정하여 각 데이터 항목을 구분합니다.
  • NR>1: 첫 번째 줄(헤더)을 건너뛰고 두 번째 줄부터 데이터 처리를 시작합니다.
  • { total_sales += $2; ... }: 각 행의 판매량과 가격을 누적하여 총합을 계산합니다.
  • END {...}: 모든 행 처리가 끝난 후 최종 결과를 출력합니다.

이 과정을 통해 우리는 전체 판매량과 평균 가격을 손쉽게 계산할 수 있으며, 이는 데이터 분석의 기초적인 단계로서 매우 중요합니다.

3. 특정 조건에 따른 필터링

AWK를 사용하면 특정 조건에 맞는 데이터를 필터링할 수도 있습니다. 예를 들어, 가격이 10,000원 이상인 판매자의 이름과 판매량만 출력하려면 다음과 같은 명령어를 사용할 수 있습니다:

awk -F',' 'NR>1 && $3 >= 10000 { print "이름:", $1 ", 판매량:", $2 }' sales.csv

설명:

  • $3 >= 10000: 가격이 만 원 이상인 경우만 선택하여 해당 판매자의 이름과 판매량을 출력합니다. 이를 통해 특정 조건에 맞는 데이터를 쉽게 추출할 수 있습니다.

이러한 필터링 기능은 데이터 분석에서 매우 유용하게 활용될 수 있으며, 필요한 정보만을 신속하게 얻을 수 있는 방법을 제공합니다.

4. 그룹화 및 요약

판매자별로 총 매출액(판매량 * 가격)을 계산하고 싶다면 다음과 같은 스크립트를 사용할 수 있습니다:

awk -F',' 'NR>1 { sales[$1] += $2*$3 } END { for (name in sales) print name ": 총 매출액 = " sales[name] }' sales.csv

설명:

  • sales[$1] += $2*$3: 각 판매자 이름별로 매출액을 누적하여 저장합니다. 이 과정은 판매자별로 매출을 집계하는 데 매우 유용합니다.
  • 마지막에는 각 판매자 이름과 그에 해당하는 총 매출액을 출력하여, 전체 매출 현황을 한눈에 파악할 수 있도록 합니다.

이러한 그룹화 및 요약 기능은 데이터 분석에서 중요한 통찰력을 제공하며, 비즈니스 의사결정에 큰 도움이 됩니다.

결론

AWK는 간단하면서도 강력한 텍스트 처리 도구로, 특히 데이터 분석 작업에서 큰 장점을 제공합니다. 위의 예시들은 AWK가 어떻게 실제 문제 해결에 적용될 수 있는지를 잘 보여줍니다. 데이터가 커질수록 복잡한 쿼리나 조건문이 필요해질 것이므로, 다양한 상황에서 연습하며 능력을 키우는 것이 중요합니다. 데이터 분석의 기초를 다지며, AWK를 통해 더 깊이 있는 분석을 수행해 보세요!

728x90