머신러닝, 딥러닝 공부와 함께
파이썬을 이용한 데이터 분석 연습을 위한
파이썬으로 데이터 주무르기 1장의 시작!!
'서울시 구별 CCTV 현황 분석하기' 에 대한 요약입니다.
참고
책 내용의 변동 사항과 소스 코드와 데이터를 다운받는 방법을 참고하세요
파이썬으로 데이터 주무르기 전체 소스코드 및 데이터 다운받기
Step 1. pandas라이브러리로 csv파일을 읽어오기
* CSV(Comma-Separated Values): 스프레드시트 데이터를 저장할 때 가장 널리 쓰이는 파일 형식
* 엑셀등 여러 응용프로그램에서도 지원
* CSV 형식 (각 열은 콤마로 구분, 각 행은 줄바꿈 문자로 구분)
* 파이썬에서 CSV 파일로 저장/읽기 방법
- csv 라이브러리 사용
pandas 라이브러리로 csv 파일 읽기
import pandas as pd CCTV_Seoul = pd.read_csv('../data/01. CCTV_in_Seoul.csv', encoding='utf-8') CCTV_Seoul.head() |
- csv 파일을 pandas dataframe 으로 읽기 위해 read_csv() 함수를 사용함
- csv 구분자는 sep=구분자 옵션을 넣어서 구분자가 다른 경우도 읽기 가능
- quotechar = '"'
doc = pd.read_csv("sample.csv", encoding='utf-8-sig', quotechar=',')
- 에러 나는 데이터는 항상 있을 수 있음, 해당 데이터는 생략하는 것이 일반적임
doc = pd.read_csv("sample.csv", encoding='utf-8-sig', error_bad_lines=False)
Step 2. DataFrame 인덱싱하며 데이터 다루기
저 나름대로 데이터프레임 인덱싱하는 방법에 대해서
정리해 보았습니다.
제 뇌피셜이기 때문에 이해가 안되는 부분은 넘어가면서 확인하세요
df.index[int] , df.columns[int], df.values[int][int] integer로만 인덱싱/슬라이싱 가능하다 df[string] 열string으로 인덱싱이 가능하다. 복수는 df[[string,string,...]] df[int:int] 행을 슬라이싱만 가능하다. ex) df[0:1] 0번 index행 출력 loc[행의 조건, 열의 조건] # 행 조건은 비워두면 안된다. loc[ : , : ] 행 전체 열 전체 # 슬라이싱은 :(콜론)으로 지정 loc[ df['x'] == y ] # 컬럼 'x'가 y인 행 조건 , 열 조건 default = 열전체 loc[index, column] loc[ [지정 인덱스들 ], [지정 컬럼들]] # 리스트로 묶어서 ,(콤마로 구분) loc[ 특정 행 및 열 ] = 특정값 # = (대입연산자) 이용하여 추가, 생성 가능 ex) df.loc['행'] = [ 각 컬럼 value값들 ] <-> df['컬럼'] = [각 행 value값들] iloc[인덱스 넘버, 컬럼 넘버] # loc와 동일하게 iloc[행의 조건, 열의 조건] # 행 조건은 비워두면 안된다. iloc[: , :] 행과 열 모두 integer로 인덱싱/슬라이싱 가능하다. iloc[ [지정 인덱스들], [지정 컬럼들]] # 리스트로 묶어서 ,(콤마로 구분) |
Step 3 matplotlib으로 그래프 그리기
1장 학습에서 가장 흥미로웠던 점은 아래 부분이었다.
머신러닝을 공부하면서 배웠던 선형회귀(polynomial Regression)를
넘파이를 통해 분석해서 나타냈다는 점이 가장 흥미로웠다.
fp1 = np.polyfit(data_result['인구수'], data_result['소계'], 1) f1 = np.poly1d(fp1) fx = np.linspace(100000, 700000, 100) data_result['오차'] = np.abs(data_result['소계'] - f1(data_result['인구수'])) df_sort = data_result.sort_values(by='오차', ascending=False) df_sort.head() |
아래는 그래프를 그리는데 이용하는 시각화 요소들의 스타일이다.
Marker Description 'o' Circle '*' Star '.' Point ',' Pixel 'x' X 'X' X (filled) '+' Plus 'P' Plus (filled) 's' Square 'D' Diamond 'd' Diamond (thin) 'p' Pentagon 'H' Hexagon 'h' Hexagon 'v' Triangle Down '^' Triangle Up '<' Triangle Left '>' Triangle Right '1' Tri Down '2' Tri Up '3' Tri Left '4' Tri Right '|' Vline '_' Hline |
Line Syntax Description '-' Solid line ':' Dotted line '--' Dashed line '-.' Dashed/dotted line |
Color Syntax Description 'r' Red 'g' Green 'b' Blue 'c' Cyan 'm' Magenta 'y' Yellow 'k' Black 'w' White |