[EDA] Chapter01. 오리엔테이션 & Chapter02. 서울시 CCTV 현황 데이터분석

황성미·2023년 7월 29일
0
post-thumbnail
post-custom-banner

✍🏻 28일 공부 이야기

-주피터 설치
-필요한 모듈 설치
-matplotlib 한글 설치
-vscode 설치
-서울시 CCTV 현황 데이터 분석



matplotlib 한글 설치

import matplotlib.pyplot as plt
%matplotlib inline
plt.title("데이터사이언스")

💻 출력

위와 같이 한글이 깨져서 출력되는 것을 볼 수 있을 것이다.

이런 경우 아래를 실행시킨 후 위 코드를 실행시키면 한글이 잘 출력되는 것을 볼 수 있다!

matplotlib 한글 설정과 관련해서 구글링했을 때 깔끔하게 🖱️정리된 사이트도 같이 첨부한당

#window.ver

from matplotlib import font_manager

f_path = "C:\Windows\Fonts\malgun.ttf" #원하는 폰트 교체 가능!
font_manager.FontProperties(fname = f_path).get_name()

from matplotlib import rc
rc("font", family = "Malgun Gothic")

💻 출력

VScode 설치



서울시 CCTV 분석

Python, Pandas, Matplotlib 을 공부하기에 좋은 데이터이기 때문에 첫 번째 프로젝트로 설정하였다.
이 분석을 아래와 같은 순서로 진행하면서 다음과 같은 모듈들을 사용하고 데이터를 분석해보는 능력을 기를 수 있게 된다고 한다!!


Step1. 서울시 구별 CCTV 현황 데이터 확보
Step2. 서울시 인구 현황 데이터 확보
Step3. CCTV와 인구 현황 데이터 합치기
Step4. 데이터 정리 및 정렬
--- ↳ Python, Pandas 이용 ---
Step5. 그래프 그리기
--- ↳ Matplotlib 이용 ---
Step6. 전체적인 경향 파악
--- ↳ Regression using Numpy 이용 ---
Step7. 이상치 데이터를 강조해보기
--- ↳ Insight & Visualization 이용 ---


  • 오늘의 목표 : 인구수 대비 CCTV 설치수 현황을 확인할 수 있는 시각화해보기

Step1 & Step2. CCTV 데이터와 인구 현황 데이터 찾기

[서울 열린 데이터 광장]

-CCTV 데이터 : "서울시 자치구 년도별 CCTV 설치 현황"
-인구 현황 데이터 : "서울시 주민등록인구 (구별) 통계"

강의에서는 데이터가 업데이트 됨에 따라 내용이 달라질 수 있어, 배포된 데이터를 사용하라고 했지만 변화된 내용을 관찰해보는 것도 재미있을 것 같아 사이트에 들어가 최신 데이터를 다운받아서 분석해보려고 한다.
아래 내용은 최신 데이터를 다운받아 공부했지만, 해당 내용의 프로젝트가 계속 이어짐에 따라 데이터의 연도가 중요할 것 같아서 강의에서 제공한 데이터로 다시 공부했습니다!


Step3. 데이터 읽기

import pandas as pd
데이터프레임명 = pd.read_csv("파일경로/파일이름.csv")
데이터프레임명 = pd.read_excel("파일경로/파일이름.xlsx")

원본파일을 보고 파일을 읽은 후, 원하는 데이터만 추출할 수 있어야 함

  • 컬럼명 보기
데이터프레임명.columns #리스트 형태로 모든 컬럼명을 볼 수 있음

데이터프레임명.columns[컬럼인덱스] #컬럼명을 선택해서 읽을 수 있음
  • 컬럼명 변경
데이터프레임명.rename(columns = {변경할 컬럼명 : "변경 내용"), inplace = True)
#inplace = True 옵션을 해줘야 원본 데이터프레임에 변경이 적용됨.
  • 컬럼 추가(수정)
    해당 컬럼이 있으면 값이 수정되고, 없다면 값이 추가되는 형태
데이터프레임명["컬럼명"] = ["입력할 값1", "입력할 값2", ...]
  • 컬럼 삭제
    del , drop
del 데이터프레임명["삭제할 컬럼명"] #원본 데이터까지 삭제해버림

데이터프레임명.drop(["삭제할 컬럼명"] , axis = 옵션값) #원본 데이터는 삭제되지 않음. 
#axis = 0 : 가로 삭제, axis = 1 : 세로 삭제
  • 데이터 정렬
데이터프레임명.sort_values(by = "정렬할 컬럼명") 
#ascending = False : 내림차순 정렬 옵션
#inplace = True : 원본 데이터에 저장 옵션
  • 데이터 추출
    [n:m]
    loc : 이름으로 특정 행 또는 열을 선택
    iloc : 인덱스 값으로 특정 행 또는 열을 선택
#연속된 행이나 열들은 : 을 이용해 나타낼 수 있음
#만약 연속되지 않은 행이나 열들을 추출하고 싶다면 
#[["행1", "행4" ], ["열1, "열3"]] 와 같은 리스트 형태로 나타내주면 됨

데이터프레임명[추출할 행 인덱스 또는 이름, 추출할 열 인덱스 또는 이름]

데이터프레임명.loc[추출할 행 이름, 추출할 열 이름]

데이터프레임명.iloc[추출할 행 인덱스, 추출할 열 인덱스]
  • 데이터 값 변경
    apply()
데이터프레임명["행 또는 컬럼명"].apply(값에 적용될 함수)
#파이썬에 내장된 함수는 "sum", "max"와 같이 따옴표로 적어주면 되고
#사용자 함수를 만들어 값 변경 가능(따옴표없이 사용자함수명 적기).
#lambda를 이용한 값 변경이 자주 이용됨.




📌 위에 정리해둔 내용을 바탕으로 데이터를 읽어본 코드들은 아래 깃허브 링크에 업로드 해두었습니다 🙆🏻‍♀️🙆🏻‍♀️
https://github.com/nabi4442/ZeroBaseDataSchool/blob/main/01.%20Analysis%20Seoul%20CCTV.ipynb

profile
데이터 분석가(가 되고픈) 황성미입니다!
post-custom-banner

0개의 댓글