import pandas as pd
import plotly.express as px
https://www.data.go.kr/data/3074462/fileData.do#/tab-layer-recommend-data
= pd.read_csv('../../../../delete_/경찰청_범죄 발생 지역별 통계_20231231.csv', encoding='cp949').assign(Year='23')
df_s = ['서울', '부산', '대구', '인천', '광주', '대전', '울산', '세종']
keywords
for keyword in keywords:
= [col for col in df_s.columns if keyword in col]
target_columns
= df_s[target_columns].sum(axis=1)
df_s[keyword]
= df_s.drop(columns=target_columns) df_s
= pd.DataFrame()
df1 for i in range(18, 23):
= pd.read_csv(f'../../../../delete_/경찰청_범죄 발생 지역별 통계_20{i}1231.csv', encoding='cp949').assign(Year=f'{i}')
df = pd.concat([df1, df], ignore_index=True)
df1 = pd.concat([df1, df_s], ignore_index=True)
df1 = ['경기 ','경기도', '강원','충북','충남','외국','경남','제주','경북','전남','전북']
keywords
for keyword in keywords:
= [col for col in df1.columns if keyword in col]
target_columns
= df1[target_columns].sum(axis=1)
df1[keyword]
= df1.drop(columns=target_columns) df1
= pd.DataFrame()
df2 for i in range(18, 23):
= pd.read_csv(f'../../../../delete_/경찰청_범죄발생장소_20{i}1231.csv', encoding='cp949').assign(Year=i)
df = pd.concat([df2, df], ignore_index=True)
df2 = pd.concat([df2, pd.read_csv(f'../../../../delete_/경찰청_범죄 발생 장소별 통계_20231231.csv', encoding='cp949').assign(Year=23)], ignore_index=True) df2
df1.pivot_table(=[col for col in df1.columns.tolist() if col not in ['범죄대분류','범죄중분류']],
values="Year",
columns=['범죄대분류','범죄중분류'],
index="sum"
aggfunc ).reset_index()
FutureWarning:
pivot_table dropped a column because it failed to aggregate. This behavior is deprecated and will raise in a future version of pandas. Select only the columns that can be aggregated.
범죄대분류 | 범죄중분류 | 강원 | 경남 | ... | 충남 | 충북 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Year | 18 | 19 | 20 | 21 | 22 | 23 | 18 | 19 | ... | 20 | 21 | 22 | 23 | 18 | 19 | 20 | 21 | 22 | 23 | ||
0 | 강력범죄 | 강간 | 116.0 | 131.0 | 110.0 | 108.0 | 131.0 | 156.0 | 214.0 | 232.0 | ... | 185.0 | 191.0 | 214.0 | 201.0 | 122.0 | 108.0 | 135.0 | 135.0 | 149.0 | 138.0 |
1 | 강력범죄 | 강도 | 11.0 | 23.0 | 19.0 | 10.0 | 14.0 | 10.0 | 49.0 | 34.0 | ... | 36.0 | 18.0 | 22.0 | 29.0 | 21.0 | 28.0 | 15.0 | 10.0 | 21.0 | 15.0 |
2 | 강력범죄 | 강제추행 | 352.0 | 351.0 | 307.0 | 274.0 | 307.0 | 472.0 | 635.0 | 645.0 | ... | 433.0 | 422.0 | 483.0 | 636.0 | 368.0 | 348.0 | 328.0 | 248.0 | 354.0 | 451.0 |
3 | 강력범죄 | 기타 강간 강제추행등 | NaN | NaN | NaN | NaN | NaN | 6.0 | NaN | NaN | ... | NaN | NaN | NaN | 10.0 | NaN | NaN | NaN | NaN | NaN | 7.0 |
4 | 강력범죄 | 기타강간강제추행등 | 7.0 | 2.0 | 7.0 | 6.0 | 8.0 | NaN | 20.0 | 22.0 | ... | 10.0 | 7.0 | 7.0 | NaN | 8.0 | 11.0 | 8.0 | 3.0 | 8.0 | NaN |
5 | 강력범죄 | 방화 | 31.0 | 28.0 | 26.0 | 20.0 | 25.0 | 30.0 | 288.0 | 50.0 | ... | 42.0 | 44.0 | 37.0 | 55.0 | 40.0 | 41.0 | 31.0 | 23.0 | 29.0 | 54.0 |
6 | 강력범죄 | 살인기수 | 12.0 | 5.0 | 12.0 | 6.0 | 10.0 | 12.0 | 17.0 | 16.0 | ... | 6.0 | 7.0 | 13.0 | 17.0 | 10.0 | 5.0 | 4.0 | 7.0 | 5.0 | 7.0 |
7 | 강력범죄 | 살인미수등 | 2.0 | 8.0 | 8.0 | 7.0 | 7.0 | 15.0 | 37.0 | 25.0 | ... | 22.0 | 18.0 | 28.0 | 26.0 | 16.0 | 17.0 | 7.0 | 4.0 | 12.0 | 17.0 |
8 | 강력범죄 | 유사강간 | 22.0 | 24.0 | 14.0 | 22.0 | 28.0 | 24.0 | 43.0 | 39.0 | ... | 24.0 | 22.0 | 31.0 | 33.0 | 17.0 | 19.0 | 14.0 | 13.0 | 15.0 | 22.0 |
9 | 교통범죄 | 교통범죄 | 10214.0 | 9352.0 | 8883.0 | 7692.0 | 6224.0 | 8440.0 | 20498.0 | 20726.0 | ... | 13165.0 | 11726.0 | 10317.0 | 12667.0 | 12089.0 | 10555.0 | 9704.0 | 8326.0 | 6227.0 | 8850.0 |
10 | 기타범죄 | 기타범죄 | 5528.0 | 5195.0 | 5629.0 | 6328.0 | 4973.0 | 9628.0 | 12424.0 | 14341.0 | ... | 6904.0 | 6241.0 | 7772.0 | 12151.0 | 4289.0 | 4208.0 | 4125.0 | 4105.0 | 4268.0 | 6091.0 |
11 | 노동범죄 | 노동범죄 | 656.0 | 9.0 | 10.0 | 5.0 | 9.0 | 21.0 | 75.0 | 11.0 | ... | 12.0 | 15.0 | 10.0 | 11.0 | 14.0 | 16.0 | 7.0 | 4.0 | 4.0 | 8.0 |
12 | 마약범죄 | 마약범죄 | 121.0 | 172.0 | 159.0 | 100.0 | 194.0 | 589.0 | 480.0 | 537.0 | ... | 291.0 | 256.0 | 311.0 | 513.0 | 161.0 | 156.0 | 186.0 | 136.0 | 227.0 | 476.0 |
13 | 병역범죄 | 병역범죄 | 253.0 | 175.0 | 52.0 | 39.0 | 88.0 | 221.0 | 734.0 | 516.0 | ... | 182.0 | 68.0 | 101.0 | 461.0 | 253.0 | 252.0 | 82.0 | 47.0 | 62.0 | 183.0 |
14 | 보건범죄 | 보건범죄 | 229.0 | 385.0 | 340.0 | 301.0 | 403.0 | 353.0 | 770.0 | 715.0 | ... | 859.0 | 490.0 | 417.0 | 217.0 | 88.0 | 127.0 | 149.0 | 214.0 | 356.0 | 173.0 |
15 | 선거범죄 | 선거범죄 | 55.0 | 21.0 | 16.0 | 5.0 | 69.0 | 34.0 | 91.0 | 57.0 | ... | 11.0 | 2.0 | 75.0 | 54.0 | 33.0 | 11.0 | 13.0 | 1.0 | 51.0 | 25.0 |
16 | 안보범죄 | 안보범죄 | 3.0 | 0.0 | 3.0 | 4.0 | 5.0 | 2.0 | 3.0 | 3.0 | ... | 1.0 | 7.0 | 4.0 | 6.0 | 1.0 | 1.0 | 0.0 | 3.0 | 0.0 | 2.0 |
17 | 절도범죄 | 절도범죄 | 3298.0 | 3582.0 | 3416.0 | 3384.0 | 3512.0 | 4368.0 | 10151.0 | 10648.0 | ... | 6268.0 | 5941.0 | 6304.0 | 7629.0 | 4410.0 | 4648.0 | 4374.0 | 3997.0 | 4576.0 | 5372.0 |
18 | 지능범죄 | 문서 인장 | NaN | NaN | NaN | NaN | NaN | 377.0 | NaN | NaN | ... | NaN | NaN | NaN | 523.0 | NaN | NaN | NaN | NaN | NaN | 341.0 |
19 | 지능범죄 | 문서인장 | 191.0 | 246.0 | 218.0 | 186.0 | 240.0 | NaN | 949.0 | 633.0 | ... | 379.0 | 282.0 | 359.0 | NaN | 264.0 | 270.0 | 263.0 | 209.0 | 228.0 | NaN |
20 | 지능범죄 | 배임 | 66.0 | 86.0 | 69.0 | 63.0 | 63.0 | 123.0 | 227.0 | 248.0 | ... | 128.0 | 115.0 | 132.0 | 146.0 | 68.0 | 51.0 | 59.0 | 40.0 | 50.0 | 79.0 |
21 | 지능범죄 | 사기 | 5081.0 | 5957.0 | 6588.0 | 5781.0 | 6745.0 | 9852.0 | 15393.0 | 18347.0 | ... | 10455.0 | 8073.0 | 10349.0 | 14750.0 | 5827.0 | 6530.0 | 7443.0 | 6961.0 | 7596.0 | 10357.0 |
22 | 지능범죄 | 유가증권인지 | 3.0 | 0.0 | 0.0 | 0.0 | 3.0 | 1.0 | 4.0 | 4.0 | ... | 3.0 | 1.0 | 0.0 | 0.0 | 4.0 | 1.0 | 0.0 | 2.0 | 0.0 | 1.0 |
23 | 지능범죄 | 증수뢰 | 4.0 | 2.0 | 4.0 | 6.0 | 3.0 | 14.0 | 15.0 | 13.0 | ... | 14.0 | 10.0 | 6.0 | 12.0 | 8.0 | 5.0 | 10.0 | 5.0 | 4.0 | 9.0 |
24 | 지능범죄 | 직권남용 | 13.0 | 23.0 | 12.0 | 15.0 | 29.0 | 82.0 | 22.0 | 35.0 | ... | 7.0 | 16.0 | 44.0 | 37.0 | 6.0 | 16.0 | 12.0 | 25.0 | 25.0 | 48.0 |
25 | 지능범죄 | 직무유기 | 16.0 | 14.0 | 16.0 | 20.0 | 24.0 | 52.0 | 16.0 | 30.0 | ... | 11.0 | 22.0 | 31.0 | 39.0 | 6.0 | 13.0 | 8.0 | 24.0 | 25.0 | 35.0 |
26 | 지능범죄 | 통화 | 15.0 | 15.0 | 15.0 | 10.0 | 13.0 | 7.0 | 11.0 | 12.0 | ... | 25.0 | 19.0 | 10.0 | 9.0 | 17.0 | 9.0 | 17.0 | 17.0 | 5.0 | 6.0 |
27 | 지능범죄 | 횡령 | 726.0 | 817.0 | 778.0 | 669.0 | 857.0 | 1417.0 | 2159.0 | 2302.0 | ... | 1574.0 | 1296.0 | 1533.0 | 2006.0 | 905.0 | 854.0 | 919.0 | 848.0 | 923.0 | 1231.0 |
28 | 특별경제범죄 | 특별경제범죄 | 974.0 | 1009.0 | 905.0 | 906.0 | 839.0 | 1374.0 | 2518.0 | 2729.0 | ... | 1368.0 | 1071.0 | 1328.0 | 2106.0 | 1014.0 | 913.0 | 984.0 | 713.0 | 961.0 | 1426.0 |
29 | 폭력범죄 | 공갈 | 71.0 | 108.0 | 84.0 | 101.0 | 133.0 | 180.0 | 216.0 | 290.0 | ... | 158.0 | 188.0 | 206.0 | 277.0 | 93.0 | 121.0 | 168.0 | 121.0 | 214.0 | 247.0 |
30 | 폭력범죄 | 상해 | 1314.0 | 1238.0 | 1057.0 | 842.0 | 766.0 | 911.0 | 3009.0 | 2918.0 | ... | 1332.0 | 1120.0 | 979.0 | 1130.0 | 995.0 | 959.0 | 843.0 | 893.0 | 795.0 | 814.0 |
31 | 폭력범죄 | 손괴 | 1548.0 | 1468.0 | 1415.0 | 1340.0 | 1428.0 | 1748.0 | 2672.0 | 2948.0 | ... | 2168.0 | 1963.0 | 1870.0 | 2435.0 | 1540.0 | 1483.0 | 1462.0 | 1373.0 | 1423.0 | 1663.0 |
32 | 폭력범죄 | 약취 유인 | NaN | NaN | NaN | NaN | NaN | 9.0 | NaN | NaN | ... | NaN | NaN | NaN | 12.0 | NaN | NaN | NaN | NaN | NaN | 8.0 |
33 | 폭력범죄 | 약취유인 | 4.0 | 9.0 | 2.0 | 3.0 | 9.0 | NaN | 9.0 | 11.0 | ... | 7.0 | 9.0 | 5.0 | NaN | 4.0 | 7.0 | 8.0 | 8.0 | 15.0 | NaN |
34 | 폭력범죄 | 체포감금 | 19.0 | 30.0 | 24.0 | 31.0 | 17.0 | 30.0 | 52.0 | 57.0 | ... | 53.0 | 42.0 | 41.0 | 45.0 | 41.0 | 29.0 | 33.0 | 30.0 | 23.0 | 24.0 |
35 | 폭력범죄 | 폭력행위등 | 233.0 | 236.0 | 183.0 | 177.0 | 173.0 | 235.0 | 478.0 | 434.0 | ... | 291.0 | 279.0 | 247.0 | 368.0 | 180.0 | 161.0 | 139.0 | 174.0 | 156.0 | 218.0 |
36 | 폭력범죄 | 폭행 | 3731.0 | 3099.0 | 2790.0 | 2495.0 | 2559.0 | 3330.0 | 7252.0 | 7625.0 | ... | 3412.0 | 2854.0 | 3216.0 | 4111.0 | 3237.0 | 2962.0 | 2866.0 | 2371.0 | 2424.0 | 2615.0 |
37 | 폭력범죄 | 협박 | 380.0 | 482.0 | 513.0 | 504.0 | 480.0 | 726.0 | 839.0 | 1024.0 | ... | 714.0 | 683.0 | 652.0 | 952.0 | 392.0 | 511.0 | 467.0 | 380.0 | 440.0 | 623.0 |
38 | 풍속범죄 | 도박범죄 | 112.0 | 292.0 | 150.0 | 212.0 | 101.0 | 211.0 | 330.0 | 292.0 | ... | 167.0 | 116.0 | 128.0 | 313.0 | 113.0 | 143.0 | 139.0 | 123.0 | 97.0 | 148.0 |
39 | 풍속범죄 | 성풍속범죄 | 201.0 | 210.0 | 380.0 | 225.0 | 397.0 | 500.0 | 447.0 | 478.0 | ... | 381.0 | 429.0 | 642.0 | 754.0 | 212.0 | 265.0 | 433.0 | 305.0 | 439.0 | 524.0 |
40 | 환경범죄 | 환경범죄 | 73.0 | 120.0 | 83.0 | 62.0 | 45.0 | 94.0 | 369.0 | 356.0 | ... | 120.0 | 204.0 | 109.0 | 1789.0 | 38.0 | 22.0 | 11.0 | 6.0 | 16.0 | 16.0 |
41 rows × 110 columns
= px.scatter(
fig
df1,="범죄대분류", # Variable on the x-axis
x="서울", # Variable for the boxplot values
y="Year", # Facet by 'Year'
facet_col# title="Boxplot with Faceting",
="범죄중분류", # Optional: Color by category
color# boxmode="group" # Group boxplots for each category
)
fig.update_layout(=20,
title_font_size# xaxis_title="Category",
# yaxis_title="Value",
# legend_title="Category",
=600,
height=1500,
width
)
fig.show()