✏️데이터 취업 스쿨 스터디 노트(EDA ③)

Cheon Bumin·2023년 12월 6일

Study Note✏️

목록 보기
11/17

12/6 Data Study to do

  • Pandas 데이터 합치기 (Ch.2 서울시 CCTV 현황, 9-11강)
  • matplotlib 기초 (Ch.2 서울시 CCTV 현황, 12-14강)
  • Pandas 피봇테이블 (Ch.3 서울시 범죄 현황, 3-4강)
  • 자기소개서 필수문항 1-3번 작성

오늘 공부 요약짤...🥲


📌공부 내용

서울시 CCTV 현황 분석

✅ 목표

  1. 서울시 구별 CCTV 현황 데이터 확보
  2. 인구 현황 데이터 확보
  3. CCTV 데이터와 인구 현황 데이터 결합
  4. 데이터 정리 및 정렬
  5. 그래프 시각화
  6. 전제적인 경향을 파악
  7. 그 경향에서 벗어난 데이터 강조
- 사용 기능 정리 -
1,2,3,4 : Python, Pandas
5 : Matplotlib
6 : Regression using Numpy
7 : Insight and Visualization

-----------▲ 12/4 작성 내용 ▲-----------

✅ 데이터 합치기

  • merge 함수를 활용
    - 데이터 병합에 사용되는 함수
    - Pandas DataFrame 데이터 병합은 자주 사용
    1. pd.merge(left, right, on='칼럼')
      → left와 right 데이터 프레임을 '칼럼' 기준으로 병합해라
    2. pd.merge(left, right, how='left', on='칼럼')
      → '칼럼' 기준으로 left에 right를 병합해라
      → how에 들어가는 데이터 프레임으로 다른 데이터 프레임을 추가해라
      ``` how에 들어갈 수 있는 것
      1. 데이터 프레임 이름
      2. outer : 병합하는 데이터 프레임의 합집합
      3. inner : 병합하는 데이터 프레임의 교집합
      4. how가 없는 경우 자동으로 교집합 데이터만 출력

.

✅ CCTV 데이터와 인구 현황 데이터 결합 진행 순서

1. data_result = 두 자료를 '구별'을 기준으로 데이터 병합
- how 옵션 안써도됨
→ 두 자료의 칼럼 '구별' 개수가 일치하기 때문

2. 필요 없는 칼럼 제거 (2013~2016년)
- del 함수 사용
- 위의 데이터는 앞으로 사용하지 않기 때문에 삭제

3. set_index로 index를 새롭게 설정
- set_index는 index를 재지정하는 명령어
- index로 설정하는 Serises는 중복되는 데이터가 없어야 함
- 그래프 그릴 때 용이한 index 설정 필요

4. 가설 설정 : 인구가 많을 지역이 CCTV 수가 많다?
- 목표 : 인구대비 상대적으로 CCTV가 적은 구를 찾는 것
→ 인구데이터와 CCTV의 상관관계 여부를 확인하기 위한 가설 설정

5. 가설 확인 (상관관계 확인)
- 주의할 점 : 상관관계가 있다고 인과관계가 있는 것은 아님

  • 상관관계의 핵심 : 한 데이터가 증가할 때 다른 쪽 데이터가 변화하느냐
    - 상관계수는 절대값 1이 가장 높은 숫자 (0.2 이상의 데이터만 의미있음)
    - 음의 상관관계 : 한 데이터가 작아질 때 다른 데이터도 작아진다
    - 양의 상관관계 : 한 데이터가 커질 때 다른 데이터도 커진다
    `
  • 상관관계 계산법 : 변수.corr()
    - 주대각선(빨간색 선) : 자기 자신과의 상관관계는 항상 1
    - 우리가 확인해야 되는 것 : 소계와 인구수 ▶ 0.23
    → 0.2 이상이라 의미는 있으나 큰 영향이 있지는 않다

5.구별 인구대비 CCTV 현황 분석 진행
- 가설(구별 인구대비 CCTV 수가 상관관계가 있다) 미입증
- 상대적으로 CCTV가 적거나 많은구를 찾는 것이 유의미

CCTV 비율 만들기

  • CCTV 비율이 높은 구 찾는 방법
    1. CCTV 비율 칼럼 생성 ▶ 소계(CCTV 개수) / 인구 * 100
    2. CCTV 비율 기준으로 정렬

    `
  • CCTV 비율이 낮은 구 찾는 방법
    1. CCTV 비율이 높은 구 데이터에서 내림차순(ascending=True)

✅ matplotlib 기초

  • matplotlib : 파이썬의 대표적인 시각화 도구
    - import matplotlib as plt
    → plt로 많이 naming 해서 사용
    - 초기에 한글 설정을 하지 않으면 다 깨져서 시각화됨
    → 사용 초기에 %matplotlib inline 옵션 사용 필수

  • matplotlib.pyplot : matplotlib에서 2D 그래프 담당
    - import matplotlib.pyplot as plt (matplotlib와 약자와 동일)
    - plt.figure(figsize-(가로, 세로)) : 그래프에 대한 속성(ex. size 등)
    - plt.plot(x축, y축) : 이렇게 그래프를 그려라
    - plt.show() : 위의 내용을 다 반영해서 그래프를 보여줘라

  • 삼각함수 그리기 (numpy와 절친이 되어야 함)
    - numpy의 sin 함수 활용
    → np.arange(a,b,s) : a부터 b까지 s 간격으로 배열
    → np.sin(value) : sin 함수 출력 (보통 value는 np.arange)

    삼각함수 진행 순서 : arange/sin 함수 → 그래프 그리는 코드(def) 작성
    `
    ▼ 그래프 그리는 함수

    - grid() : 격자 추가
    - legend() : 범례 추가
    - xlabel('text') : 가로 축 제목 설정
    - ylabel('text') : 세로 축 제목 설정
    - title('text') : 그래프 제목 설정
    - xlim([start, end]) : 가로 축 경계
    - ylim([start, end]) : 세로 축 경계
    ※ 위의 명령어 앞에는 plt. 필수
    .
    - color='색상' : 선 색
    - linestyle = '선' : 선 종류
    - marker = '마커 모양'
    - markerfacecolor = '색상' : 마커 색상
    - markersize=숫자 : 마커 크기


    def drawGraph marker 설정
    - 'r--' : red -- (빨간색 점선)
    - 'bs' : bule square (파란색 사각형)
    - 'g^' : green triangle (초록색 삼각형)


    marker를 point로 설정
    - plt.scatter(가로 데이터, 세로 데이터) : 마커를 점 뿌리듯이 표시


    colormap
    - colormap = t : 컬러 그라데이션 단계를 t로 선언
    - colorbar() : colormap 시각화

  • matplotlib 공식 홈페이지에서 다양한 차트 이미지 확인 가능
    https://matplotlib.org/stable/gallery/index


하루 공부를 마치며🔥

  • 오늘 학습 시간 : 4시간 46분
  • 파이참에서 했던 파이썬은 핵심 키워드 중심으로 강의를 봤다면
  • EDA에서 배우는 내용들은 같은 파이썬이라도
  • 자료, 가설, 목표 등 다양한 요소들을 어떻게 풀어낼지 확인하느라
  • 이론 강의를 3번씩 보고 있다..!
profile
포기만 하지 말자

0개의 댓글