내일배움캠프(QA,QC_5기)

[내일배움캠프] QA/QC_5기 ( 13일차 )

lshxkwh 2026. 3. 25. 19:56

[ 데이터 분석 입문 1 ] ( 데이터 전처리 & 시각화 - 1주차)

  • 강의 목표
  • 데이터 분석가란?
  • Pandas의 기초
  • Series 와 Data Frame
  • Indexing 과 Filtering
  • 데이터 시각화
  • [ 실습 ] 우리 가게 팁 분석하기

[ 강의 목표 ] 

  • 강의 내용
    • pandas를 활용하여 간단하게 데이터를 전처리 하는 방법을 알 수 있다.
    • Matplotlib을 활용하여 데이터를 시각화 하는 방법을 알 수 있다.
    • 단순히 스킬 셋 뿐만 아니라 데이터 분석가에 대해 진지하게 고민 해볼 수 있다.

 

[ 데이터 분석가란? ] 

 

  • 비즈니스 분석가
    • 주로 비지니스 문제를 이해하고 해결하기 위해 데이터를 분석한다.
    • 주요 업무 프로세스 개선 , 비즈니스 모델 분석 , 요구 사항 관리 등 수행
  • 프로덕트 분석가
    • 제품이나 서비스의 성과를 평가하고 개선하기 위해 데이터를 분석
    • 사용자 행동 및 제품 성능과 관련된 데이터를 분석하여 제품 개선에 기여한다.
  • 데이터 분석가
    • 주로 정형 데이터를 분석하여 기업의 의사결정을 지원한다.
    • 데이터 베이스 ,  스프레드 시트 등에서 데이터를 추출하고 , 데이터를 정제하여 보고서 및 시각화를 생성한다.
  • BI 분석가
    • 기업의 비즈니스 인텔리전스 플랫폼과 도구를 사용하여 데이터를 시각화 하고 보고서를 작성합니다.
  • 데이터 사이언티스트
    • 주로 데이터를 활용하여 예측, 패턴 발견 , 복잡한 분석을 수행하여 비즈니스 문제를 해결한다.

 

 

[ Pandas의 기초 ] 

  1. Pandas 라이브러리
    - 데이터 분석을 위한 핵심 Python 라이브러리이다
  2. 엑셀을 쓰지 않고 Pandas를 배우는 이유
    1. 대용량 데이터 처리의 압도적 속도
    2. 분석 과정의 자동화 와 재현성
    3. 강력한 데이터 정제
    4. 다양한 데이터 소스와의 연결성

 

[ Series & DataFrame

  1. 데이터 프레임(DataFrame)
    1. 데이터 프레임이란?
      - 행과 열이 있는 2차원 표 형태
  2. 시리즈(Series)
    1. 시리즈란?
      - 데이터가 일렬로 늘어선 1차원 형태

 

[ Indexing & Filtering ]

  1. loc vs iloc
    • loc[행이름, 열이름]: Label(이름) 기준. "사람이 부르는 이름표"
    • iloc[행번호, 열번호]: Integer(정수) 기준. "컴퓨터가 세는 순서"

[ 실습 - 우리 가게 팁 분석하기 ]

  • 시나리오: 여러분은 레스토랑의 매니저입니다. "언제 손님이 가장 많은지", "어떤 손님이 팁을 후하게 주는지" 데이터를 통해
    알아봅시다.
  1.  데이터 준비하기 (Seaborn 활용) 별도의 파일 다운로드 없이, 연습용 데이터를 바로 불러옵니다.
    import seaborn as sns
    df = sns.load_dataset("tips")
    1.  데이터 훑어보기
      df.head()
      df.info()
       
    2.  결측치와 데이터 타입 확인
      df.info()
      type(df)
    3.  통계 요약 (평균 팁 금액은 얼마일까?)
      df.describe()
  2. 데이터 필터링 
    1. 담배를 피우지 않는 손님만 따로 필터
      no_smoke = df[df['smoker'] == 'No']
      no_smoke
       
    2. 저녁 시간 이면서 팁을 5달러 이상 준 테이블은?
      time_tip = df[(df['tip']>5) & (df['time']=='Dinner')]
      time_tip
       
  3. 파생 변수 만들기
    1. 팁 비율(%) 컬럼 만들기
      df['비율 %']= (df['tip']/df['total_bill'])*100
      df

[ 코드 카타 문제 풀이 ] 16~20

더보기

[ 문제 16 ] 

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

 

def solution(x,n):
    answer = []
    for i in range(1,n+1):
        answer.append(x*i)
    return answer

 

[ 문제 17 ] 

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

 

def solution(n):
    result = [int(i) for i in str(n)[::-1]]
    return result

 

[ 문제 18 ] 

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

 

def solution(s):
    result = int(s)
    return result

 

[ 문제 19 ] 

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

 

def solution(n):
    x = int(n**0.5)
    if x * x == n:
        return (x+1)**2
    else :
        return -1

 

[ 문제 20 ] 

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다

 

def solution(n):
    a = int(''.join(sorted(str(n),reverse=True)))
    return a

[ 알고리즘 파이썬 ] ( 반복문 & 함수 ) 

  • 131~ 160번 ( 반복문 )
  • 201 ~ 230 ( 함수 )

풀기는 풀었으나 풀이는 노트에 정리