TIL/내일배움캠프

파이썬으로 데이터 분석하기 Ⅱ

Kou_ 2026. 5. 20. 16:24

[내일배움캠프] QA/QC 6기 - 7일차

  • TIL
    • 파이썬의 기본적인 문법을 학습했다.
    • 아티클 스터디를 바탕으로 데이터 분석가에게 하드 및 소프트 스킬의 필요성과 중요성을 다시 한 번 인지했다.
  • To-Do List
    1. Python 기초 탄탄 라이브 세션 2회차 수강
    2. 데이터 분석 파이썬 종합반 4주차 수강
    3. 아티클 스터디 3 : 데이터 분석가가 갖춰야할 9가지 역량

파이썬으로 데이터 분석하기

조건문

  • 파이썬에서 프로그램의 흐름을 제어하는 중요 요소 중 하나
  • 특정 조건(True)인 경우에만 특정 코드 블록을 실행
  • if    #조건이 참일 때 실행
    elif    #다른 조건이 참일 때 실행
    else    #위 조건 모두 거짓일 때 실행
  • 조건문에서는 들여쓰기 및 띄어쓰기가 매우 중요
    • 잘못된 예시
      x = 10
      if x > 5:
      print("x는 5보다 큽니다.")    #if 블록의 조건과 같은 인덴트에서 실행되기 때문에 조건으로 동작하지 않음
      else:
      print("x는 5보다 작거나 같습니다.")    #마찬가지로 들여쓰기로 블록을 구분지어야 함
    • 좋은 예시
      x = 10
      if x > 5:
          print("x는 5보다 큽니다.")    #if 조건이 참일 때 출력
      else:
          print("x는 5보다 작거나 같습니다.")    #else 조건이 참일 때 출력
  • 연산자
    • 조건을 판단하기 위한 비교 연산자
      • > : 초과
      • < : 미만
      • >= : 이상
      • <= : 이하
      • == : 같음
      • != : 같지 않음
    • 조건 결합 시 사용하는 논리 연산자
      • and : 모두 참일 때 참
      • or : 하나 이상이 참일 때 참
      • not : 조건을 부정
  • 조건문 예시
    x = 10
    if x > 0:    #x가 0보다 클 때 아래 블록 실행
        if x % 2 == 0:  #x를 2로 나눴을 때 몫이 0이면 아래 블록 실행
            print("양의 짝수입니다.") 
        else: #if x%2==0 조건 만족하지 않는 모든 경우 아래 블록 실행
            print("양의 홀수입니다.")
    else:  #if x>0 조건 만족하지 않는 모든 경우 아래 블록 실행
        print("음수 또는 0입니다.")
  • 조건문을 짧게 작성하기
    x = 10
    result = "양의 짝수" if x > 0 and x % 2 == 0 else "음수 또는 0" 
    #result 변수는 '양의 짝수', x>0이고 짝수이면, 그 외에는 는 result 변수는 '음수 또는 0'
    print(result)
  • 데이터 분석을 통해 도출된 결과를 바탕으로 의사 결정을 내릴 때도 조건문 사용
    • 예시) 특정 제품의 판매량이 일정 기준을 초과할 때 추가 생산 주문이 필요
    • 예시) 고객 특성에 따른 마케팅 전략 변경 계획 수립 등
  • 출력되는 것은?
    → [{"a":1,"b":13},'excited',5]

반복문

  • for
    • for 반복문은 데이터 분석 및 다른 프로그래밍 작업에서 매우 유용
    • for 문 기본 구조
      for 변수 in 반복할_데이터:
          코드_블록
      • 리스트 순회하기
        fruits = ["apple", "banana", "cherry"]
        for fruit in fruits:    #fruits list 내에서 하나씩 fruit이라는 변수로 지정 이후 코드 블록을 실행하고 반복
            print(fruit) #fruit 변수를 출력
      • 문자열 순회하기
        for letter in "hello":
            print(letter) #'h','e','l','l','o' 순서대로 출력
      • range() 함수와 함 께 사용하기    #range(stop), range(start,stop) 또는 range(start,stop,step) 구조
        for i in range(5):
            print(i)    #0,1,2,3,4 숫자 출력
      • 딕셔너리 순회하기
        person = {"name": "John", "age": 30, "city": "New York"}
        for key, value in person.items():
            print(key, " : ", value)
      • 1부터 100까지의 숫자 중 3의 배수 출력
        for i in range(1, 101):
            if i % 3 == 0:
                print(i)
      • 리스트에서 특정 값을 필터링하기
        numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
        even_numbers = []
        for num in numbers:
            if num % 2 == 0:
                even_numbers.append(num)
        print(even_numbers)
      • 구구단 출력하기 (이중 for 문 사용)
        for i in range(2, 10):
            print(f"{i}단:")
            for j in range(1, 10):
                print(i, "x", j, " = ", i * j)
    • 반복문 실전 사용 예시
      • 데이터 정제 및 전처리
        • 결측치 처리 및 이상치 탐지를 위한 반복적인 데이터(행, 열) 검사
        • 문자열 데이터를 숫자로 변환하거나, 특수문자를 제거하는 등의 전처리 작업
      • 결측치 처리 예시
        data = [10, 20, None, 30, 40, None, 50]
        cleaned_data = []
        for d in data:
            if d is not None:
                cleaned_data.append(d)
        print(cleaned_data)
      • 통계 계산
        • 데이터 요약 통계(평균, 중앙값, 표준편차 등)를 계산 시 각 요소 반복 처리
      • 히스토그램이나 분포를 만들 때 데이터를 반복하여 처리하고 카운트 (빈도 집계)
        • 평균 계산 예시
          data = [10, 20, 30, 40, 50]
          total = 0
          for d in data:
              total += d
          mean = total / len(data)
          print("Mean:", mean)
      • 데이터 탐색
        • 데이터의 특정 패턴, 특징을 찾기 위해 반복적으로 데이터 탐색
        • 다차원 데이터 구조 탐색 후 관련 정보 추출을 위해 반복문 사용
        • 특정 조건을 만족하는 데이터 찾기 예시
          data = [10, 20, 30, 40, 50]
          threshold = 25
          for d in data:
              if d > threshold:
                  print("Value greater than", threshold, "found:", d)
      • 모델 평가
        • 모델의 성능을 평가할 때 예측값과 실제값을 비교하기 위해 데이터를 반복하여 처리
        • 교차 검증을 수행할 때 각 폴드에 대한 반복문을 사용하여 모델을 훈련하고 평가
        • 모델 성능 평가 예시
          true_values = [1, 0, 1, 0, 1]
          predicted_values = [0, 0, 1, 0, 1]
          correct_predictions = 0
          for true, pred in zip(true_values, predicted_values):
              if true == pred:
                  correct_predictions += 1
          accuracy = correct_predictions / len(true_values)
          print("Accuracy:", accuracy)
      • 반복적인 작업 자동화
        • 여러 데이터 파일 또는 시계열 데이터의 각 시간 단계를 반복적으로 처리하여 일관적으로 분석 및 처리
        • 반복적인 분석 작업을 자동화하기 위해 반복문을 사용
  • While
    • 반복문 중 하나인 while 문은 조건을 만족하는 '동안' 코드 블록을 반복적으로 실행
    • 특정 조건이 True 일 때에만 실행 → 조건이 False가 될 때 까지 반복 (무한히 반복되는 것을 주의)
    • While 문 기본 구조
      while 조건:    #Boll 값을 반환하는 표현식 (조건이 True로 평가될 때까지만 코드 블록 반복 실행)
          코드_블록
      • 1부터 5까지 출력하기
        i = 1
        while i <= 5:
            print(i)
            i += 1
      • 무한 루프와 break 문 (반드시 break와 같은 반복 중단 장치 필요)
        while True:
            user_input = input("Type 'quit' to exit: ")
            if user_input == 'quit':
                break
            print("You typed:", user_input)

      • pass 예시
        # 홀수를 출력하는 코드에서 짝수일 경우에는 아무 작업도 수행하지 않고 넘어감
        numbers = [1, 2, 3, 4, 5]
        for num in numbers:
            if num % 2 == 0:
                pass    #다음 코드로 넘어가기
            else:
                print(num, "은 홀수입니다.")
      • continue 예시
        # 1부터 10까지의 숫자 중 짝수를 출력
        num = 0
        while num < 10:
            num += 1
            if num % 2 == 1:
                continue    #다시 반복 시행
            print(num)
      • 조건에 따른 특정 동작 반복 : 횟수 정해서 출력
        count = 0
        while count < 3:    #count를 사용해 0,1,2 총 3회만 Hello 출력하게 조건 설정
            print("Hello")
            count += 1
      • 조건에 따른 특정 동작 반복 : 팩토리얼 계산
        num = 5
        factorial = 1
        while num > 0:    #5,4,3,2,1 까지 반복
            factorial *= num    #factorial × num
            num -= 1    #num=num-1
        print("Factorial of 5 is:", factorial)

함수

  • 함수의 개념
    • 함수는 입력을 받아 원하는 처리를 한 후 출력을 내보내는 일련의 작업을 수행하는 코드 블록
    • 프로그램 내에서 특정한 기능을 수행하기 위해 코드를 논리적으로 그룹화하여 재사용 가능한 형태로 정의
  • 함수의 필요성
    • 코드 재사용 : 반복되는 코드를 함수로 정의하여 여러 곳에서 재사용 가능
    • 모듈화 : 프로그램을 여러 개의 작은 모듈로 나누어 개발 및 관리
    • 유지 보수 용이성 : 함수는 각각의 기능을 독립적으로 정의하므로, 수정·확장이 필요할 때 해당 함수만 수정
    • 가독성 향상 : 함수는 코드의 의도를 명확하게 표현할 수 있으며, 복잡한 작업을 함수로 분해하여 이해하기 쉬움
  • 함수의 정의와 호출 방법
    • 함수 정의
      def 함수이름(매개변수1, 매개변수2, ...):    #def 키워드로 함수 정의
          # 함수 내부에서 수행할 작업
          return 결과값    # (선택적) 함수의 결과를 반환
    • 함수 호출함수 이름 작성 후 소괄호 안에 인수(함수에 전달할 값)을 넣어 호출
      결과 = 함수이름(인수1, 인수2, ...)    #필요에 따라 결과를 변수에 저장할 수 있음
    • 예시
      # 함수 정의
      def greet(name):    #greet이라는 함수 정의
          message = "Hello, " + name + "!"
          return message

      # 함수 호출
      greeting = greet("Alice")
      print(greeting)  # 출력: Hello, Alice!
  • 간단한 계산 함수 만들기
    • 평균 계산 함수
      → 평균: 30.0
      • calculate_mean 함수 정의 → 주어진 숫자 리스트의 평균 계산
      • 숫자 리스트를 받아 sum() 함수를 이용해 총합 구한 뒤 리스트 길이로 나누어 평균 계산하고 그 값을 반환
      • 이 함수 호출 시 숫자 리스트를 인수로 전달
    • 주어진 문자열에서 각 문자의 출현 빈도를 딕셔너리로 반환하는 함수
      → {'h': 1, 'e': 1, 'l': 2, 'o': 1}
  • 함수 심화
    • 전역변수와 지역변수의 차이
      • 전역변수 (Global Variables)
        • 전역변수는 프로그램 전체에서 접근 가능한 변수, 어디서든지 사용 가능
        • 프로그램이 시작될 때 생성, 종료될 때까지 메모리에 유지
        • 전역변수는 프로그램 어디서든 접근 가능 → 여러 함수에서 공통적으로 사용되는 값 저장에 유용
        • 너무 많은 전역변수 사용 시 코드 가독성 저하 및 디버깅 난이도 상승
      • 지역변수 (Local Variables)
        • 지역변수는 특정 범위(함수 내부 등)에서만 접근 가능한 변수, 해당 범위 벗어나면 사용 불가
        • 지역변수는 해당 범위에서 생성, 범위 벗어나면 메모리에서 삭제메모리 관리에 효율적
        • 함수 내에서 정의된 변수해당 함수 내에서만 사용 가능한 지역 변수 → 다른 함수·코드에서 사용 불가
      • 예시 코드
    • 인수(argument)와 매겨변수(parametere)의 차이
      • 함수 정의 시 매개변수와 함수 호출 시 전달 값(인수)는 혼동하기 쉬운 개념
      • 매개변수(Parameter)
        • 함수 정의 시 입력 값을 지정하는 변수
        • 함수의 헤더 부분에서 매개변수가 정의, 함수 내에서 사용 → 함수 호출 시 매개변수에 해당하는 값 전달받음
      • 인수(Argument) (== 전달인자)
        • 함수 호출 시 함수에 전달되는 실제 값, 호출할 때마다 다를 수 있음
        • 함수 호출 시 매개변수에 전달되는 값 → 해당 값은 함수 내부에서 매개변수로 사용
      • 예시 코드
      • 더 복잡한 예시
    • 위치 인수 (Positional Argument)와 키워드 인수 (Keyword Argument)
      • 함수 호출 시 전달되는 두 가지 유형의 인자
      • 위치 인수(위치 전달 인수)
        • 함수 정의에서 매개변수 위치에 따라 전달되는 인수
        • 위치 인수는 인자의 값이 함수의 매개변수에 순서대로 매핑
        • 코드 예시
      • 키워드 인수
        • 함수 호출 시 인수를 순서대로 전달하는 대신 특정 매개변수에 값을 할당하여 전달 가능
        • 코드 예시
    • 기본값 (Default Values) 설정
      • 매개변수 기본값을 설정 가능 → 해당 매개변수에 인수가 전달되지 않았을 때 기본값으로 사용
      • 코드 예시
    • 가변 인수 (Variable-length Argument) 활용
      • 여러 인수를 받을 수 있는 함수 제작에는 가변인수를 활용
      • 파이썬에서는 *args **kwargs 사용
        • *args : 함수 호출 시 임의 갯수의 위치 인수 전달
        • **kwargs : 함수 호출 시 임의 갯수의 키워드 인수 전달
      • *args 코드 예시
      • **kwargs 코드 예시
  • 함수가 데이터 분석에서 사용되는 예씨
    • 데이터 전처리 함수
      • 데이터 분석 진행에 매우 중요한 데이터 전처리를 위해 다양한 전처리 함수 사용 가능
      • 예를 들어 데이터 정규화, 결측치 처리, 특성 스케일링 등의 함수 존재
    • 데이터 시각화 함수
      • 데이터를 시각화하여 EDA 수행 시 다양한 시각화 함수 사용 가능
        → 데이터 분포(히스토그램), 상관 관계(히트맵), 이상치(박스 플롯) 등 확인
    • 통계 계산 함수
      • 다양한 통계량을 계산하여 데이터 분석에 사용해야 할 수 있음 → 통계 계산 함수 사용

아티클 스터디 3

데이터 분석가가 갖춰야 할 9가지 역량

 

데이터 분석가가 갖춰야 할 9가지 역량 | 요즘IT

최근 노코드 툴, 데이터 플랫폼, ChatGPT 등이 등장하면서 데이터 분석가에게 요구되는 역량도 변화하고 있습니다. 이번 글에서는 데이터 분석가가 갖춰야 할 9가지 역량을 크게 하드 스킬과 소프

yozm.wishket.com

  • 아티클 요약 및 주요 내용
    •  요약
      이 아티클은 데이터 분석가에게 요구되는 역량을 하드 스킬 5가지와 소프트 스킬 4가지로 나누어 설명한다. 과거에는 SQL, Python, 통계학과 같은 기술적 역량이 핵심으로 강조되었지만, 최근에는 데이터 플랫폼과 자동화 도구가 발전하면서 비즈니스 문제를 정확히 정의하고, 분석 결과를 조직의 의사결정과 실행으로 연결하는 능력이 더욱 중요해지고 있다고 말한다.
    • 주요 포인트
      • 데이터 분석가는 기술 역량과 비즈니스 이해를 함께 갖춰야 한다.
        분석 기술을 바탕으로 어떤 문제를 해결하기 위해 어떤 데이터를 봐야 하는지 판단하는 도메인 이해와 비즈니스 감각이 필요하다.
      • 좋은 분석은 문제를 정확히 정의하고, 실행 가능한 해결책으로 이어져야 한다.
        문제 정의 → 가설 수립 → 분석 → 해결책 제안’의 흐름으로 진행하다.
      • 실무에서는 협업과 전달 능력의 중요성이 크다.
        분석 결과가 정확해도 이해관계자에게 명확히 전달되지 않으면 활용되기 어렵다. 따라서 데이터 분석가는 보고서, 시각화, 커뮤니케이션 역량을 통해 분석 내용을 다른 직무와 공유하고, 조직이 의사결정을 내릴 수 있도록 지원해야 한다.
  • 핵심 개념 및 용어 정리
    • 핵심 개념
      • 하드 스킬과 소프트 스킬의 균형
        데이터 분석가는 SQL, Python, 통계학과 같은 기술적 역량뿐 아니라, 문제 해결력/커뮤니케이션/보고서 작성 능력과 같은 협업 및 전달 역량도 함께 갖춰야 한다.
      • 문제 정의 중심의 분석
        데이터 분석은 단순히 데이터를 살펴보는 것이 아니라, 무엇이 문제인지 명확히 규정하고 원인을 검증하는 과정이다. 문제를 정확히 정의해야 분석 결과도 실제 해결책으로 이어질 수 있다.
      • 분석 결과의 실무적 활용
        데이터 분석의 목적은 결과를 도출하는 데 그치지 않고, 이를 바탕으로 의사결정, 전략 수립, 업무 개선과 같은 실행 가능한 액션으로 연결하는 데 있다.
    • 용어 정리
      • 데이터 파이프라인
        데이터가 수집되고, 정제되고, 저장되며, 최종적으로 분석에 활용되기까지 이어지는 전체 처리 흐름을 의미한다.
      • 데이터 마트
        특정 부서나 목적에 맞게 필요한 데이터만 따로 정리해 둔 분석용 데이터 저장소이다. 예를 들어 마케팅팀용 고객 분석 데이터, 품질팀용 불량 분석 데이터 등이 이에 해당한다.
      • 검정력
        실제로 차이나 효과가 존재할 때, 통계 분석이 이를 올바르게 발견해낼 확률을 의미한다. 검정력이 낮으면 실제 차이가 있어도 없다고 판단할 가능성이 커진다.핵심 개념 및 용어 정리
  • 실무 적용 사례
    • 실무 적용 이커머스 기업에서는 구매 전환율 저하, 장바구니 이탈 증가, 재구매율 감소와 같은 문제를 해결하기 위해 데이터 분석을 활용한다. 데이터 분석가는 고객의 유입 경로, 상품 조회 수, 장바구니 담기율, 결제 단계별 이탈률 등을 분석해 문제가 발생한 지점을 찾고 개선 방향을 제안한다.
    • 관련 사례 이커머스 서비스에서는 결제 페이지나 상품 추천 방식이 전환율에 미치는 영향을 확인하기 위해 A/B 테스트를 활용한다. 예를 들어, 버튼 문구나 상품 추천 배치를 다르게 보여준 뒤 어떤 방식이 더 높은 구매 전환율을 보이는지 비교하고, 성과가 좋은 안을 실제 서비스에 반영한다.
    • 가상 시나리오 한 온라인 쇼핑몰에서 최근 장바구니에 상품을 담은 고객은 늘었지만 실제 구매 완료율은 감소했다고 가정한다. 분석 결과, 배송비가 결제 마지막 단계에서 처음 표시되면서 고객 이탈이 급증한 것을 확인했다. 아래의 방법을 통해 데이터 분석은 단순한 현상 파악을 넘어, 고객 이탈 원인을 찾아 실제 매출 개선으로 연결하는 역할을 수행한다.
      • 상품 상세 페이지에서 예상 배송비를 미리 안내
      • 일정 금액 이상 무료배송 기준을 명확히 표시
      • 개선 전후 구매 전환율을 비교해 효과를 검증

출처
내일배움캠프 자료