본문 바로가기
데이터분석/공공데이터를 활용한 데이터분석

(완강 후 정리) 공공데이터를 활용한 데이터분석 포트폴리오 만들기[데이터분석]_메타코드 강의 후기

by 해봄544 2024. 6. 2.

라이브러리란? 

다양한 기능과 도구를 모아둔 코드의 집합.
이미 실력자들이 코딩에 도움이 되는 함수 모듈등을 많이 만들어둠

# 그중 데이터조작, 분석을 위한 pandas 사용 표 형식의 데이터를 다루는데 효과적

웹개발시엔 numpy, flaks,django 사용하며 상황에 맞는 라이브러리를 사용하면 좋음

pandas에서 다루는 데이터 > DataFrame(자료 구조중 하나 엑셀에서 흔히 보는 데이터를 의미)


1. 라이브러리 설치 

!pip install pandas

2.라이브러리 가져오기 (import)

import pandas as pd

특정 함수나 클래스만 가져오고 싶을

from module_name import function_name, class_name

3. csv파일 불러오기

df = pd.read_csv('경로')

* UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 0: invalid start byte

>> read_csv 파일은 utf_8 인코딩을 기본으로 사용 한국어의 경우 인코딩을 설정해줘야 하는 파일이 있음.

위와 같은 오류가 뜬다면 

df = pd.read_csv('경로', encoding='cp949')

국제적으로 사용: utf-8

한국어 사용시 주로 사용: cp949


1) .head()

상위 몇 개의 행을 확인할때 사용
ex) df.head(3)

지정하지 않았을때 상위 5개만 출력

2) .tail()

하위 몇 개의 행을 확인할때 사용
ex) df.tail(3)

지정하지 않았을때 하위 5개만 출력

3) .sample()

랜덤하게 몇 개의 행을 확인할때 사용
ex) df.sample(3)

random_state = 아무 숫자나 입력

계속 랜덤하게가 아닌 한번 랜덤하게 뽑은 행들을 동일하게 뽑고싶을때 사용
ex) df.sample(3, ramdom_state =100)

4) .info()

데이터의 기본정보 확인할때 사용
ex) df.info()


형식 바꾸기

1. 데이터 타입 변경

1) 날짜데이터 datetime으로 변경

pd.to_datetime

2) 시간데이터는 시간과 분을 포맷으로 지정해줘야 함

더보기

datetime에서 시간, 분만 존재하는것은 불가 시간만 존재하려면 문자열로 지정해줘야함

 

그래서 문자열 데이터를 합쳐준 뒤 그 데이터를 datetime으로 바꾸는것이 가장 깔끔함

3) 문자열 타입으로 변경
df[' '].astype(str)

4) dt.strftime() 
datetime 자료형 열에 대해 형식화된 문자열을 반환 

더보기

3)과 4)를 통해 datetime을 문자열(object)형식으로 변경

5) 새로운 컬럼 만들기

6) 컬럼 삭제(drop)

df.drop([' '],axis=1)

 axis는 축을 설정하는 메서드 

=0은 행 방향(수직 방향) 이고 =1은 열 방향(수평 방향)을 의미한다.

더보기

 이때 df를 출력했을때 '신고년월일'이 남아있다. 

컬럼을 삭제하는 것은 매우 민감한 일이기 때문에
df에 바로 삭제되지 않고 새로운 df을 지정해서 삭제한 결과를 저장한다.

바로 삭제하기 위해선 inplace  사용

true 사용시 바로 삭제 false 사용시 바로 삭제 되지 않음


결측치

데이터를 다룰때 필수적으로 결측치 확인하는것이 좋다.

데이터에 빠진 값이 있지 않은지 확인하는 과정이다.

위를 보면 총 796,868개의 row가 있는것을 알 수 있다.

모든 컬럼이 796,868개의 row가 빈칸없이 들어가 있는지 확인하는 작업이다.

1. isnull().sum()

df에 null 값이 있다면 그 행을 모두 더해서 출력

2. df.info()

를 통해 비교해 보며 확인하는 방법도 있다. 밑의 사진을 보면 발생장소_구의 숫자가 다른것을 확인 할 수 있다.

3. null값 정보 확인하기

1) 행 선택하기

발생장소_구의 행중 null값이 있는 행을 출

2) 결측치 처리하기

1. 0으로 처리
2. 아예 삭제
3. ' '으로 만들기
4. 결측치의 값을 다른 값으로 대체: 결측치 대체 fillna

 >> 데이터에 맞춰서 처리

1. df_new['발생장소_구'].fillna(0,inplace=True)

3.  df_new['발생장소_구'].fillna(' 'inplace=True)

4. fillna를 통해 결측치를 대체해 준다.

 


이상치

1. 어떤 값이 얼마나 있는지 확인 

.value_counts()

2. 하나 혹은 두개만 있는 값들을 출력해서 이상치 확인

더보기

or을 사용하고 싶을땐 | 을 사용한다.

 

3. 이상치 제외하기
이상치를 to_drop에 저장한 뒤 
df_new에 to_drop이 아닌 값을 저장해 준다.

https://metacodes.co.kr/edu/learn.nx?M2_IDX=31635&SHOW_TYPE=NORMAL&EP_IDX=8326&EM_IDX=8152&EPP_IDX=16361&cp_code=661b8389662b1&url=%2Fedu%2Fread2.nx%3FEM_IDX%3D8152%26EP_IDX%3D8326%26M2_IDX%3D31635%23study_plan

 

 

 

https://metacodes.co.kr/edu/learn.nx?EM_IDX=8152&EPP_IDX=16361&EP_IDX=8326&M2_IDX=31635&SHOW_TYPE=NORMAL&cp_code=661b8389662b1&url=%2Fedu%2Fread2.nx%3FEM_IDX%3D8152%26EP_IDX%3D8326%26M2_IDX%3D31635%23study_plan

 

metacodes.co.kr

 

 

 

 

 

 

https://metacodes.co.kr/edu/learn.nx?EM_IDX=8152&EPP_IDX=16361&EP_IDX=8326&M2_IDX=31635&SHOW_TYPE=NORMAL&cp_code=661b8389662b1&url=%2Fedu%2Fread2.nx%3FEM_IDX%3D8152%26EP_IDX%3D8326%26M2_IDX%3D31635%23study_plan

 

metacodes.co.kr