- 가정(혹은 ‘인식’)을 검증하고 표현하는 것
구글 검색
5대 범죄 발생 검거 관련 데이터 다운로드
데이터 불러오고 변수에 할당하기
read_csv() 함수 사용
불러온 데이터 정보 확인
-> 인덱스 범위와 데이터의 수가 이상한 것을 확인
unique() 매서드로 데이터 종류 확인
-> 5대 범죄 이외에 non 데이터가 들어가 있음을 알 수 있다.
-> non 데이터가 문제인 것을 유추할 수 있다.
죄종 컬럼에서 non 데이터만 가져오기
NoN 데이터 제외하고 데이터 가져와서 변수로 초기화
데이터 불러오기
info()매서드와 unique()매서드 이용하여 데이터의 정보 확인
마스킹하여 원하는 데이터 추출 후 확인
- DataFrame.pivot_table(values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')
- values : 집계할 데이터프레임의 열 이름
- index : 행 인덱스로 사용할 열 이름
- columns : 열 인덱스로 사용할 열 이름
- aggfunc : 집계 함수 (기본값: 'mean')
- fill_value : 결측값 대체 값
- margins : 행/열별 총합/평균 등의 요약 통계량을 추가할지 여부 (기본값: False)
- dropna : 결측값이 있는 행/열을 제외할지 여부 (기본값: True)
- margins_name : margins가 True인 경우 추가될 행/열의 이름 (기본값: 'All')
- pivot_table(데이터프레임, index=컬럼)
- 다수의 컬럼을 인덱스로 지정할 수 있다.
- values값을 정할 수 있다.
- aggfunc옵션으로 values값에 함수를 적용할 수 있다. 디폴트 값은 평균이다.
- aggfunc옵션은 다수 지정할 수 있다.
-> 데이터 중 NaN값이 확인된다.
- index
- values - aggfunc
- columns
데이터 프레임 생성
- values 은 디폴트값으로 평균 값이 표기된다.
데이터 확인
Price에 대한 sum 값과 len 값이 각각 표기된다.
데이터 확인
-> 데이터 중에 NaN값이 발생
-> 해당하는 곳에 입력한 값이 없기 때문이다.
pivot_table을 적용한 원본 데이터를 변수에 초기화 (crime_station)
원하는 데이터 프레임 형태로 출력
-> 이때 컬럼이 여러 행으로 되어 있다.
-> 컬럼의 인덱스(0=sum, 1=건수, 2=강도, 3=검거)를 확인할 수 있다.
- sum과 건수는 필요한 정보가 아니다.
- droplevel() 함수를 이용하여 컬럼의 특정 행 제거
정리된 데이터프레임의 인덱스를 확인
-> 경찰서 이름 인덱스의 데이터 프레임이 필요
데이터 확인
-> 컬럼의 인덱스가 0~4 인것을 알 수 있다.
- 파이썬 언어는 사용할 모듈을 직접 설치해야한다.
- anaconda는 많은 모듈을 포함하기에 따로 설치하지 않아도 된다.
- 그럼에도 모듈을 설치하는 방법을 알아야한다.
- 구글맵에서 서울영등포경찰서에 대한 위치정보를 코드로 볼 수 있다.
- Pandas 데이터 프레임은 대부분 2차원
- 이럴 떄 for문을 사용하면, n 번째라는 지정을 반복해서 가독률이 떨어짐
- Pandas 데이터 프레임으로 반복문을 만들 때 iterrows() 옵션을 사용하면 편함
- 받을 때, 인덱스와 내용으로 나누어 받는 것만 주의할 것.
- 리스트형안에 dict형으로 이워진 것을 확인할 수 있다.
- 딕셔너리형에서 데이터 얻을 때는 get 사용한다.
- 위도 값 데이터 찾기
- 경도 값 데이터 찾기
- 주소 값 데이터 찾기
-> 주소 값 중 '구'의 데이터만 필요하다
- split() 매서드
- 기존 데이터 프레임에 없다면 신규로 추가한다.
- iterrows() 함수는 Pandas DataFrame 객체에서 각 행의 인덱스와 해당 행의 데이터를 Series 형태로 반환하는 함수이다.
- 여러 레벨의 컬럼을 서로 합친다.
- 각종 많은 정보 중 위도, 경도, 주소 데이터 조회해본다.
- 주소에서 '구'만 조회해본다.
- 코드 진행이 잘 작동되는지 가시적으로 확인을 위한 count +1 문장
- rename(columns={},inplace=True)
- 구별을 인덱스로 변경
- 데이터 값 합산으로 변경
- 경도 및 위도 삭제( drop() 및 del )