[TIL]데이터 분석 부트캠프(4기) 9일차

Data_Student·2024년 10월 21일
0

TIL

목록 보기
9/34

[TIL]데이터 분석 부트캠프(4기) 9일차

0. 들어가며

지난주 수요일부터 금요일까지 2박 3일 예비군으로 교육 불참...
그래서 상당히 밀린 상태에서 다시 시작!!
주말에 해보려고 했지만 다른 일정이 있어서 일정 종료 후 잠깐 쉬었는데
주말이 순삭..! 그래도 파이썬 1강
PS. 직접 교육 받은 일수만 일차로 반영해서 이제 9일차!! ㅋㅋㅋ

1. 오전 일과

  • 코드카타
# PATIENT, DOCTOR 그리고 APPOINTMENT 테이블에서 2022년 4월 13일 취소되지 않은 흉부외과(CS) 
# 진료 예약 내역을 조회하는 SQL문을 작성해주세요. 진료예약번호, 환자이름, 환자번호, 진료과코드, 
# 의사이름, 진료예약일시 항목이 출력되도록 작성해주세요. 결과는 진료예약일시를 기준으로 오름차순 정렬해주세요.
# JOIN을 두번 진행하면서 COL을 추출하면 PT_NO가 중복되어서 오류가 발생함
# 그래서 PT_NO를 인라인 뷰에서 한번 추출 후 중복 없이 진행

select apnt_no, pt_name, pt_no, ap.mcdp_cd, dr_name, apnt_ymd
from
    (
    SELECT apnt_ymd, 
    	   apnt_no, 
           a.pt_no, -- 중복 오류를 없애기 위해 PT_NO 하나만 작성
           pt_name, 
           gend_cd, 
           age, 
           tlno, 
           mcdp_cd, 
           mddr_id, 
           apnt_cncl_yn, 
           apnt_cncl_ymd
    from appointment a join patient p on a.pt_no=p.pt_no
    ) ap
 join doctor d on ap.mddr_id=d.dr_id
 where (apnt_cncl_yn is null or apnt_cncl_yn = "N") -- 진료예약 취소가 없는 경우
 		and apnt_ymd like '%2022-04-13%' and ap.mcdp_cd = "CS" -- 2022-04-14에 CS 진료일 경우
 order by apnt_ymd
  • 4주차 학습 일정 안내 발제
    데이터 전처리 & 시각화에 대한 전반적인 안내 진행
    • 개인적으로는 며칠 빠진 관계로 따라가기에도 바쁜 상황이 발생
      하지만 아침에 조금 더 일찍 + 끝나고 조금 더 늦게 하면 충분히 따라갈 수 있을 듯
  • 면담 및 스크럼
    오전 11시부터 간단한 면담 진행
    기존에 작성했던 스타터 노트를 기반으로 진행하였으며,
    • 데이터 분석을 통해 하고 싶은 일
    • 앞으로 개선하고 보완해야 하는 점
    • 미래에 대한 방향성 제시 등 이번 내배캠을 통해 성장하고 싶은 방향 설정 진행
      - 아직 구체적으로 정해진 것은 아니지만 빠른 시간 내에 구체화 필요하며,
      감사하게도 면담을 진행해준 매니저님이 잘 안내해주셔서 대략적인 방향을 찾는데 도움이 되었음

2. 오후 일과

  • 데이터 분석 파이썬 종합반 강의 - ~4주차
    • 내용 정리
      • 입력문 input()
      • 출력문 print()
      • 자료형 str, int, list, tuple, dict 등
      • 변수선언
      • 리스트 - 가변한 시퀀스 형태의 자료형
            #리스트 메서드
            - append() - 값 추가
            - extend() - 다른 리스트를 추가
            - insert() - 특정 위치에 값 추가
            - remove() - 특정 값 제거
            - index() - 특정 값의 인덱스를 찾기
            - pop() - 특정 위치의 값 반환 후 제거
            - count() - 값의 갯수
            - sort() - 정렬
            - reverse() - 정렬(역순)
            - del my_list[num] - num 위치의 값 삭제
            - clear() - 모든 값 삭제
            - my_list[1] = 'name' # 2번째 값을 name으로 변경
      • 인덱싱 / 슬라이싱
        인덱싱 - 값 하나를 추출
        슬라이싱 - 특정 범위를 추출
        #슬라이싱 구조
        new_list = old_list[start:end:step] # step은 때때로 사용
        #인덱싱 및 슬라이싱 시 숫자 사용에 주의 필요
        #python은 0에서 부터 시작
      • 딕셔너리 - key 값은 중복하지 않도록 주의, key값과 value값을 포함
        # 딕셔너리 메서드
        - keys() - keys 객체로 반환
        - values() - values 객체로 반환
        - items() - 모든 키-값 쌍을 (키, 값) 튜플로 구성하여 반환
        - get() - 지정된 키에 대한 값을 반환
        - pop() - 지정된 키와 해당 값을 딕셔너리에서 제거하고 값을 반환
        - popitem() - 딕셔너리에서 마지막 키-값 쌍을 제거하고 반환
      • 조건문, 반복문
        #if 조건문 구조
        if 조건 :
        	#코드 작성
        elif 다른 조건 :
        	#코드 작성
        else :
        	#코드 작성
          
        # 들여쓰기와 띄어 쓰기의 중요성
        # 같은 코드이더라도 들여쓰기에 따라 결과값이 다를 수 있다.
        
        # 연산자
        > 초과
        < 미만
        >= 이상
        <= 이하
        == 같다
        != 같지 않다
        
        and 조건 모두가 충족시 참
        or  조건 중 하나이상 충족시 참
        not 조건 부정
        
        # for 반복문 구조
        for 변수 in 매개변수 :
        	# 코드 작성
        
        # range(start, stop, step)
        
        # 이중 for 문
        # 구구단, 별그리기 등에 활용 + 코딩 문제에도 활용
        
        # while 반복문 구조 (조건에 따라 반복)
        while 조건 :
        	# 코드
          
        # 작성시 무한 반복이 되지 않도록 주의
        # 제어문
        break    - 반복 종료
        pass     - 통과
        continue - 계속 진행(반복문으로 돌아가기)
      • 함수 - 입력과 출력의 일련의 작업을 수행하는 코드를 함수 단위로 묶어서 사용
        #함수의 구조
        def 함수명(매개변수1, 매개변수2, ...) :
        	#수행할 작업 코드 작성
           return 결과값  # 결과를 반환
      • 그외 전역 변수, 지역변수, 인수, 매개변수 등등!
  • 예제로 익히는 Python - 1회차
    예제를 따라 진행하였는데 처음 내용이 많아서 다시 복습하면서 이해 필요!
    • 내용 정리
      • Library 불러오기
       # pandas 모듈 불러오기
       import pandas as pd 
       # matplotlib 모듈의 pyplot 함수만 가져오기
       from matplotlib.pyplot as plt #
      • Pandas 모듈
        목적 : 데이터 형태를 행과 열로 구성된 2차원 Table로 구성, 데이터 핸들링에 최적화
      • 이후 EDA 진행
        해당 부분에 대해서는 복습하며 이해가 필요!!
  • 팀원 소통(Python 숙제 관련)
    • 진행 배경 : SQL에 비해 Python에 대한 이해를 위해 팀원의 성장을 위해 진행
    • 대략 40분정도 Python 숙제에 대한 팀원 소통 진행
    • 팀장(Python 경험자)를 중심으로 화면 공유를 통해 코드 해석 및 풀이 진행
    • 소통을 통해 Python에 대한 이해

3. 마치며

  • 무엇인가 많으면 시간이 부족하다!
  • 최대한 따라가야한다!
    그러기 위해서는 정확히 9 to 9이 아닌 조금 더 일찍, 조금 더 늦게 까지 진행하자!
  • 조금 늦은 만큼 더 노력하자!

0개의 댓글