Pandas로 데이터 검색

JOOYEUN SEO·2024년 12월 15일

100 Days of Python

목록 보기
72/76
post-thumbnail

❖ 데이터 사이언스를 위한 셋업

  • 데이터셋을 찾아보고 시각화할 때는 파이참보다 파이썬 노트북 포맷이 더 적합
  • 2가지 환경 중 하나에서 실행하기
    • 구글 콜랩 노트북(주피터 노트북 온라인 버전) : DriveNewMoreGoogle Colaboratory
    • 로컬 : 아나콘다 설치에서 번들로 제공하는 주피터 노트북 사용
  • 셀로 나뉘어져 있으며, 각각의 셀은 개별적으로 실행 가능
    • 실행 결과는 자동으로 아래 출력
    • 단축키 Shift + Enter 로 셀 실행하기
    • 구글 콜랩 노트북은 코드를 실행하기 위해 런타임에 연결됨

🗂️ Day72 프로젝트: 대학 전공과 월급의 상관관계

판다스로 대학 졸업생의 전공별 졸업 후 급여를 분석하기

1. 데이터 업로드와 .csv 파일 읽기

🔍 유의 사항

  • 데이터를 데이터프레임에 로드하기
    1. 폴더 마크를 열고 .csv 데이터 파일을 노트북에 추가하기
    2. pandas를 임포트하고 추가한 파일 읽기
  •  .head() 메소드로 생성한 판다스 데이터프레임의 상위 5줄 출력
  •  .tail() 메소드로 생성한 판다스 데이터프레임의 하위 5줄 출력

2. 판다스를 이용한 예비 데이터 탐색 및 데이터 정리

🔍 유의 사항

  • 작업 중인 데이터 이해하기
    • 행 개수
    • 열 개수
    • 열의 레이블, 열 이름 유무
    • 누락된 값, 잘못된 데이터 유무
  •  .shape 속성으로 행과 열 개수 보기
  •  .columns 속성으로 열 이름에 직접 접근
  •  .isna() 메소드로 누락된 데이터 또는 정크 데이터 확인
    • NaN(Not a Number)값을 찾는 메소드
    • 빈 셀 또는 숫자 대신 문자열을 포함하는 셀을 뜻함
  • 필요없는 행 제거하는 방법 2가지
    • 해당 행의 인덱스로 수동 제거
    •  .dropna() 메소드로 필요없는 행이 없는 새 데이터프레임 만들기 (변수에 저장해야 함)

3. 데이터프레임에 있는 열 및 개별 셀에 접근하기

🔍 유의 사항

  • [] 표기로 특정 열에 대해서만 출력할 수 있음
  • Starting Median Salary 열에서 초봉이 가장 높은 대학 전공 찾기
    •  .max() 메소드를 연결하면 해당 열에서 가장 큰 값만 출력
    •  .idxmax() 메소드를 연결하면 해당 열에서 가장 큰 값을 가진 행의 인덱스 출력
  • Undergraduate Major 열에서 초봉이 가장 높은 행에 해당하는 전공 이름 찾기
    •  .loc (location) 속성과 [인덱스]를 연결하거나, [인덱스]만 연결
  • 특정 열을 지정하지 않고 .loc 속성으로 전체 행 검색 가능

4. 소득이 가장 높은 학위 및 가장 낮은 학위

🔍 유의 사항

  • 찾아야 할 것
    • 중간 경력(10년 이상) 봉급이 가장 높은 대학 전공과, 해당 전공 졸업생들의 급여
    • 초봉이 가장 낮은 대학 전공과, 해당 전공 졸업생들의 급여
    • 중간 경력(10년 이상) 봉급이 가장 낮은 대학 전공과, 해당 전공 졸업생들의 급여
  • 파이썬 노트북의 한 셀에 여러 줄이 있는 경우
    • print()를 해야 모두 출력됨
    • print 없이 코드를 작성할 경우 셀의 마지막 줄만 자동 출력
  •  .min() 메소드를 연결하면 특정 열에서 가장 작은 값 출력
  •  .idxmin() 메소드를 연결하면 해당 열에서 가장 작은 값을 가진 행의 인덱스 출력

가장 높은 중간 경력 급여 및 전공

가장 낮은 초봉이 위치한 행의 인덱스를 구하는 코드를 학부 전공 열에 .loc 속성으로 연결

가장 낮은 중간 경력 봉급의 인덱스에 해당하는 행 전체에 접속


5. 값 분류 및 열 추가하기

🔍 유의 사항

  • 위험도가 가장 낮은 전공 찾기
    • 최고 급여(90번째 백분위수 소득)와 최저 급여(10번째 백분위수 소득)의 차이가 작은 학과
    • 두 열의 차이 계산하는 방법 2가지
      • - 연산으로 계산
      •  .subtract() 메소드로 계산
        • 또 다른 판다스 데이터프레임 열을 출력함 (변수에 저장해야 함)
        •  .insert() 메소드로 기존 데이터프레임에 새로운 열 추가하기
  • 잠재력이 가장 높은 전공 찾기
    • 90번째 백분위수 열에서 가장 높은 값을 가진 상위 5개 학과
    •  .sort_values() 메소드로 순서대로 값을 정렬
      • 여러 열 전달 가능
      • 기본 설정은 내림차순(높은 값부터), ascending=True 옵션으로 오름차순

두 열의 차이를 계산하여 출력된 새로운 행 spread를 두 번째 열에 삽입 후 오름차순
(위험도가 가장 낮은 전공)

(잠재력이 가장 높은 전공)

6. 판다스를 이용한 그룹화 및 피벗

🔍 유의 사항

  • 평균 급여가 가장 높은 전공 그룹 찾기(STEM, 경영, HASS 중 하나)
    •  .groupby() 메소드와
      •  .count() 메소드로 각 그룹에 속한 전공의 개수 계산
      •  .mean() 메소드로 그룹별 평균 급여 계산
        • Undergraduate Major 열의 값은 문자열이므로 에러 발생
        • numeric_only=True 옵션으로 수치형 열만 포함해야 함
  •  .fotmat 속성으로 숫자 포맷을 설정해서 읽기 쉽게 변경하기
    • : : 형식 지정 시작
    • , : 숫자에 천 단위 구분기호를 추가
    • .2f : 소수점 이하 2자리로 고정




▷ Angela Yu, [Python 부트캠프 : 100개의 프로젝트로 Python 개발 완전 정복], Udemy, https://www.udemy.com/course/best-100-days-python/?couponCode=ST3MT72524

0개의 댓글