[ 오늘의 수업 내용 요약 ]
- matplotlib 기초
- 파이썬의 대표 시각화 도구
- matplotlib는 plt로 많이 naming한다.
- jupyter notebook 유저의 경우 matplotlib의 결과가
out session에 나타나는 것이 유리하므로 %matplotlib inline
옵션을 사용한다.
- figure로 열어서 show로 닫는다.
- 그래프를 그리는 코드를 def()로 작성한다.
- 그러면 나중에 별도의 셀에서 그림만 나타낼 수 있기 때문이다.
- scatter(): 점을 찍는 함수
- 데이터 그래프로 표현하기
- 시각화 이유 : 표로만 확인하는건 정보 전달에 한계가 있다.
- DataFrame은 데이터 변수에서 바로 plot()명령을 사용할 수 있다.
- 그리고 데이터(컬럼)가 많은 rudd 정렬한 후 그리는 것이
효과적일때가 많다.
017 데이터 경향
- Linear Regression: 선형회귀, trend파악
- np.polyfit(): 직선을 구성하기 위한 계수 계산
- np.poly1d(): polyfit으로 찾은 계수로 python에서
사용할 함수로 만들어준다.
- np.linespace(a, b, n): a부터 b까지 n개의 등간격
데이터 생성
- 경향에서 벗어난 데이터
- 경향과 오차를 만들자 (실제값 – 예측값)
- 경향은 f1함수에 해당하는 인구를 입력 :
f1(data_result[‘인구수’])
- 현재값: data_result[‘소계’]
- plt.text(): 마커 옆에 구 이름을 명시
[ 2. 서울시 CCTV 현황 데이터 분석 ]
002. 데이터 개요
- 필요한 모듈 import
- 먼저 numpy와 pandas를 사용한다.
- 숫자값들이 콤마를 사용하고 있어서 문자로 인식될 수 있다.
- 천단위 구분 (‘,’)이라고 알려주면 콤마를 제거하고 숫자형으로
읽는다.
- info(): 데이터 개요 확인하기
- 특정 컬럼에서 unique 조사
- nan이 들어가 있다. (이는 index가 65535의 크기를 가지게
되면서 실제 values와 크기 차이가 발생했기 때문)
- 이럴때는 nan을 제거하는 것이 아니라 nan이 아닌 데이터만
다시 가져오면 된다.
- pandas의 pivot_table
- 인덱스를 여러 개 지정할 수 있음
- 정렬 가능
- values를 지정할 수 있음
- values에 함수를 적용할 수 있다.
- 디폴트는 평균
- 합산 등의 다름 함수를 적용할 때는 aggfunc옵션을 지정
- len(): 개수 적용
- columns 지정
- NaN에 대한 처리를 지정
- 합계 지정 가능
- pip명령과 conda명령
pip명령
- python의 공식 모듈 관리자
- pip list: 현재 설치된 모듈 리스트 반환
- pip install module_name: 모듈 설치
- pip uninstall module_name: 설치된 모듈 제거
conda 명령
- pip를 사용하면 conda환경에서 dependency관리가
정확하지 않을 수 있다.
- 아나콘다에서는 가급적 conda명령으로 모듈을 관리하는 것이 좋다.
- conda list: 설치된 모듈 list
- conda install module_name: 모듈 설치
- conda uninstall module_name: 설치된 모듈 제거
- conda install –c channel_name moduel_name:
지정된 배포 채널에서 모듈 설치
- 그러나 모든 모듈이 conda로 설치되는 것은 아니다.
- python의 for문
- 모든 언어에는 다 반복문이 있다.
- 파이썬은 들여쓰기로 구분한다.
- 들여쓰기를 중단하면 for문이 아니다.
- pandas에 잘 맞춰진 반복문용 명령 iterrows()
- pandas 데이터 프레임은 대부분 2차원
- 이럴때는 for문을 사용하면 n번째라는 지정을 반복해서
가독률이 떨어진다.
- pandas데이터 프레임으로 반복문을 만들 때 iterrows()라는
옵션을 사용하면 편하다.
- 받을 때 인덱스와 내용으로 나누어 받는것만 주의
- 구글맵스에서 구별 정보를 얻어 데이터를 정리
- 경찰서별 데이터로 정리되어 있다.
- 서울은 한 구에 경찰서가 두 곳인 구가 존재한다.
- 그러므로 구의 이름으로 다시 정렬해야 한다.
- 데이터를 다시 읽어 온 후 중간 중간 데이터를 파일로
저장해두면 테스트 코드가 긴 경우 중간부더 다시 작업 가능하다.
- pivot_table을 이용해서 구별로 정리
- pivot_table의 func를 sum으로 잡고, 필요없는 컬럼은
del로 제거
- 구별 데이터로 변경하기
- 본래 데이터 프레임은 두고, 정ㄱ화된 데이터를 따로 만들자
- 최고값을 1로, 최소값을 0으로
- 정규화된 범죄발생 건수 전체의 평균을 구해서 범죄의
대푯값으로 사용하자
- 검거율 평균을 구해서 검거의 대푯값으로 사용