
예제 출처 : 제로베이스 데이터 스쿨
판다스 모듈 사용

판다스에 내장된 read_csv() 함수로 csv파일을 읽어 CCTV_Seoul에 할당. 인자는 파일 경로.

head()함수 - 맨 앞의 값 5개(디폴트) 가져오기


tail()함수 - 맨 뒤의 값 5개(디폴트) 가져오기

컬럼 확인하기 - 리스트 형태로 반환

인덱스가 0인 컬럼 확인하기

rename() 함수로 인덱스가 0인 컬럼명을 '구별'로 바꾸기. 'inplace=True' 인자는 출력만 하는 것이 아니라 바로 적용한다는 인자


서울인구 엑셀파일 읽어오기

위에서부터 인덱스가 2인(header=2) 컬럼명부터 읽기, 사용할 컬럼 설정하기.


컬럼명 설정

판다스의 기본 자료구조 'series'는 index와 value를 가진다.

2013 1월 1일 부터 6일의 시퀀스를 생성 - freq의 default는 'D(ay)'


info() : DataFrame을 개괄적으로 보여주는 함수

describe() : 통계 정보

sort_value() : 데이터 정렬 by, ascending 인자 등 사용 가능.
'B' 컬럼을 기준으로 내림차순 정렬

'A'컬럼만 추출

slice도 적용 가능

index명, column명을 직접 적용 가능



조건으로도 조회가 가능하다.
'A'컬럼 중 0보다 큰 값 조회
value 중 0보다 큰 값 조회

컬럼에 값 직접 삽입


df[]로 묶어주면 True만을 추출

특정 컬럼 제거


서울 CCTV 데이터 가져오기

'최근증가율' 컬럼 생성.

서울 인구 데이터 가져오기, 컬럼 rename() 해주기


외국인비율, 고령자비율 생성 후

내림차순 정렬

데이터 프레임 병합하는 법 3가지
merge() 활용 데이터 합치기 on, how를 인자로 줄 수 있다.

서울 인구수, 서울 CCTV 데이터를 각각 조회, "구별"을 합칠 key로 잡고 column명을 일치시킴.

두 데이터 합치기

CCTV데이터에 있는 소계만 쓰임. 필요 없는 데이터 삭제

set_index() : 선택한 컬럼을 데이터 프레임의 인덱스로 지정

corr() : 모든 컬럼들 간 상관관계(correlation)를 출력해주는 함수

인구수 당 CCTV로 CCTV비율 컬럼 생성

그래프속 한글 인코딩 코드
import matplotlib.pyplot as plt # 모듈 matplotlib 의 pyplot(시각화기능)을 가져옴
from matplotlib import rc
rc("font", family="Malgun Gothic") # 그래프를 그릴 떄 나타내는 설정
get_ipython().run_line_magic("matplotlib", "inline") # == %matplotlib inline





옵션으로 color, linestyle, marker등 줄 수 있음.




데이터 불러와서 그리기

'인구수'컬럼, '막대그래프', 사이즈는 '7,7'

그래프 속 마이너스 부호 인코딩 코드
import matplotlib.pyplot as plt
from matplotlib import rc
plt.rcParams["axes.unicode_minus"] = False #마이너스 부호 때문에 한글이 깨지는 것을 방지
rc("font", family="Malgun Gothic")
get_ipython().run_line_magic("matplotlib", "inline") # == %matplotlib inline
'소계'컬럼, '가로막대그래프', '실선'추가, 사이즈'8,8'

정렬 후 다시 출력

"인구수"와 "(CCTV)소계"컬럼으로 그리기

Numpy를 이용한 1차 함수 직선 만들기

fp1 = np.polyfit(data_result["인구"], data_result["소계"], 1)
numpy.polyfit() : 첫 번째 인수 "인구수", 두 번째 인수 "CCTV소계", 세 번째 인수는 피팅하려는 다항식의 차수. 데이터에 가장 잘 맞는 다항식의 계수를 반환함.
f1 = np.poly1d(fp1)
numpy.poly1d() : 위에서 찾은 계수로 다항식 함수를 생성.
인구가 40만인 구에서 서울시의 경향에 맞는 적당한 CCTV수는? 1509대

선을 그리기 위한 변수 설정

인자 설정 후 선 그리기

오차 컬럼 만들기
구 CCTV소계 - 인구수 경향 CCTV수 = 오차
오름, 내림차순 정렬

ListedColormap 함수 사용 컬러맵 생성

c=data_result["오차"]는 색상을 먹일 기준을 정하는 코드
for문으로 상위, 하위 각 다섯 개씩만 뽑아 라벨을 붙여 출력.


정리된 데이터 저장
