Coding study/python

2024-10-09 Python 라이브러리로 데이터 분석하기

rwg5565 2024. 10. 9. 19:34

import pandas as pd

# 기존 DataFrame 불러오기
file_path = 'your_excel_file_path.xlsx'
df = pd.read_excel(file_path)

# 경찰서명과 구 이름을 매핑한 사전 (예시)
mapping_dict = {
    '중부서': '중구',
    '종로서': '종로구',
    '남대문서': '중구',
    '서대문서': '서대문구',
    # 나머지 경찰서명과 구 이름을 여기에 추가
}

# '구별' 컬럼 생성, 매칭되지 않는 값에는 '구 없음'을 할당
df['구별'] = df['관서명'].map(mapping_dict).fillna('구 없음')

# 각 범죄별 검거율 계산
df['강간검거율'] = (df['강간(검거)'] / df['강간(발생)']) * 100
df['강도검거율'] = (df['강도(검거)'] / df['강도(발생)']) * 100
df['살인검거율'] = (df['살인(검거)'] / df['살인(발생)']) * 100
df['절도검거율'] = (df['절도(검거)'] / df['절도(발생)']) * 100
df['폭력검거율'] = (df['폭력(검거)'] / df['폭력(발생)']) * 100

# 전체 검거율 계산 (총 검거 / 총 발생)
df['검거율'] = (df['소계(검거)'] / df['소계(발생)']) * 100

# 필요 없는 컬럼 삭제
del df['강간(검거)']
del df['강도(검거)']
del df['살인(검거)']
del df['절도(검거)']
del df['폭력(검거)']
del df['소계(발생)']
del df['소계(검거)']

# 컬럼명 변경
df = df.rename(columns={
    '강간(발생)': '강간',
    '강도(발생)': '강도',
    '살인(발생)': '살인',
    '절도(발생)': '절도',
    '폭력(발생)': '폭력'
})

# 구별로 데이터를 집계 (관서명을 구별로 바꿔서 합계 구하기)
pivot_df = pd.pivot_table(df, 
                          index='구별',  # 구별로 그룹화
                          aggfunc='sum')  # 합계를 구함

# '구 없음' 행을 삭제
pivot_df = pivot_df.drop('구 없음', errors='ignore')

# 결과 출력
print(pivot_df.head())

'Coding study > python' 카테고리의 다른 글

2024-10-10 코딩테스트 입문 공부  (1) 2024.10.10
2024-10-10 list dictionary tuple function  (0) 2024.10.10
2024-10-08 (class OOP 공부)  (0) 2024.10.08
2024-10-08 (for문 개념)  (0) 2024.10.08
2024-10-08 (if,elif,else)  (0) 2024.10.08