본문 바로가기
PROGRAMMING/PYTHON

[Python] Pandas 다루기 - 범죄 현황 데이터

by 안녕나는현서 2021. 4. 26.
728x90

- 2015-2017 광주광역시 범죄현황 데이터를 이용해 전년 대비 지역별 증감률을 구해보자

  • 증감률 : (금년 - 작년) / 작년 * 100
import pandas as pd

 

# 데이터 불러오기

crime_2015 = pd.read_csv('2015.csv', index_col = '관서명', encoding = 'euc-kr')
crime_2016 = pd.read_csv('2016.csv', index_col = '관서명', encoding = 'euc-kr')
crime_2017 = pd.read_csv('2017.csv', index_col = '관서명', encoding = 'euc-kr')
# 데이터 살펴보기

# 1) 상위 데이터 출력
print(crime_2015.head())
print('-'*80)
print(crime_2016.head())
print('-'*80)
print(crime_2017.head())

# 2) 데이터 정보(컬럼 개수, 컬럼명, 결측치, 데이터 타입) 확인

crime_2015.info()

# 3) 데이터 통계 정보

# 3-1) 수치형 데이터 통계
crime_2015.describe()

# 3-2) 수치형이 아닌 데이터 통계
#crime_2015.describe(include='O')

# 특정 행 삭제
# 2017년의 데이터에만 '광주지방경찰청'이라는 행이 존재
# -> 결측치가 발생하므로 '광주지방경찰청' 행을 삭제해준다

crime_2017 = crime_2017.drop('광주지방경찰청')


# 각 년도별 범죄 증가 합계 컬럼 생성

crime_2015['2015 총계'] = crime_2015.loc[:, '살인':].sum(axis = 1)
crime_2016['2016 총계'] = crime_2016.loc[:, '살인':].sum(axis = 1)
crime_2017['2017 총계'] = crime_2017.loc[:, '살인':].sum(axis = 1)


# 각 년도별 구분 컬럼이 '발생건수'인 데이터에 접근

sum_2015 = crime_2015['2015 총계'][crime_2015['구분']=='발생건수']
sum_2016 = crime_2016['2016 총계'][crime_2016['구분']=='발생건수']
sum_2017 = crime_2017['2017 총계'][crime_2017['구분']=='발생건수']


# 증감률 계산

rate_2016 = (sum_2016 - sum_2015) / sum_2015 * 100
rate_2016.name = '2015-2016 증감률'

rate_2017 = (sum_2017 - sum_2016) / sum_2016 * 100
rate_2017.name = '2016-2017 증감률'


# 결과 데이터 프레임 출력

result = pd.concat([sum_2015, rate_2016, sum_2016, rate_2017, sum_2017],
                  axis = 1)
result

# 결과 데이터 csv로 저장

result.to_csv('2015_2017_crime.csv', encoding = 'euc-kr')
728x90

댓글