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 |