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번 작성
오늘 공부 요약짤...🥲

- 사용 기능 정리 -
1,2,3,4 : Python, Pandas
5 : Matplotlib
6 : Regression using Numpy
7 : Insight and Visualization

-----------▲ 12/4 작성 내용 ▲-----------
- pd.merge(left, right, on='칼럼')
→ left와 right 데이터 프레임을 '칼럼' 기준으로 병합해라- pd.merge(left, right, how='left', on='칼럼')
→ '칼럼' 기준으로 left에 right를 병합해라
→ how에 들어가는 데이터 프레임으로 다른 데이터 프레임을 추가해라
![]()
``` how에 들어갈 수 있는 것 1. 데이터 프레임 이름 2. outer : 병합하는 데이터 프레임의 합집합 3. inner : 병합하는 데이터 프레임의 교집합 4. how가 없는 경우 자동으로 교집합 데이터만 출력
.
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 : 파이썬의 대표적인 시각화 도구
- 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
