import matplotlib.font_manager as fm
import matplotlib.pyplot as plt
import pandas as pd
pd.set_option('future.no_silent_downcasting', True)
plt.rcParams['font.family'] ='Malgun Gothic'
plt.rcParams['axes.unicode_minus'] =False
DF = pd.read_excel('notExercise.xls')
DF.head()
| |
기간 |
대분류 |
분류 |
운동을 할 충분한 시간이 없어서 |
함께 운동을 할 사람이 없어서 |
운동을 할 만한 장소가 없어서 |
운동을 싫어해서 |
기타 |
| 0 |
2017 |
서울시 |
서울시 |
49.7 |
8.1 |
5.8 |
34.7 |
1.7 |
| 1 |
2017 |
성별 |
남자 |
55.2 |
7.9 |
5.5 |
29.8 |
1.6 |
| 2 |
2017 |
성별 |
여자 |
45.0 |
8.3 |
6.0 |
38.8 |
1.8 |
| 3 |
2017 |
연령별 |
10대 |
55.7 |
6.1 |
5.6 |
32.2 |
0.3 |
| 4 |
2017 |
연령별 |
20대 |
54.8 |
6.9 |
5.2 |
32.9 |
0.1 |
DF.drop(columns = '기간', inplace = True)
DF.tail()
| |
대분류 |
분류 |
운동을 할 충분한 시간이 없어서 |
함께 운동을 할 사람이 없어서 |
운동을 할 만한 장소가 없어서 |
운동을 싫어해서 |
기타 |
| 48 |
관악구 |
관악구 |
50.7 |
7.1 |
6.9 |
33.6 |
1.7 |
| 49 |
서초구 |
서초구 |
59.8 |
3.4 |
3.2 |
32.0 |
1.5 |
| 50 |
강남구 |
강남구 |
59.1 |
5.5 |
2.6 |
31.5 |
1.3 |
| 51 |
송파구 |
송파구 |
42.6 |
7.2 |
5.8 |
44.3 |
0.1 |
| 52 |
강동구 |
강동구 |
53.1 |
9.6 |
6.8 |
30.4 |
0.1 |
DF['대분류'][23:] #23~52 '대분류' 정보 확인
23 지역대분류
24 지역대분류
25 지역대분류
26 지역대분류
27 지역대분류
28 종로구
29 중구
30 용산구
31 성동구
32 광진구
33 동대문구
34 중랑구
35 성북구
36 강북구
37 도봉구
38 노원구
39 은평구
40 서대문구
41 마포구
42 양천구
43 강서구
44 구로구
45 금천구
46 영등포구
47 동작구
48 관악구
49 서초구
50 강남구
51 송파구
52 강동구
Name: 대분류, dtype: object
DF.drop(index = range(23, 53), inplace = True) #23~52 행(Row) 삭제
DF
| |
대분류 |
분류 |
운동을 할 충분한 시간이 없어서 |
함께 운동을 할 사람이 없어서 |
운동을 할 만한 장소가 없어서 |
운동을 싫어해서 |
기타 |
| 0 |
서울시 |
서울시 |
49.7 |
8.1 |
5.8 |
34.7 |
1.7 |
| 1 |
성별 |
남자 |
55.2 |
7.9 |
5.5 |
29.8 |
1.6 |
| 2 |
성별 |
여자 |
45.0 |
8.3 |
6.0 |
38.8 |
1.8 |
| 3 |
연령별 |
10대 |
55.7 |
6.1 |
5.6 |
32.2 |
0.3 |
| 4 |
연령별 |
20대 |
54.8 |
6.9 |
5.2 |
32.9 |
0.1 |
| 5 |
연령별 |
30대 |
58.1 |
5.5 |
4.6 |
31.6 |
0.2 |
| 6 |
연령별 |
40대 |
57.7 |
6.8 |
5.2 |
29.4 |
1 |
| 7 |
연령별 |
50대 |
50.1 |
9.2 |
7.2 |
32.2 |
1.4 |
| 8 |
연령별 |
60대 이상 |
27.5 |
12.8 |
6.9 |
46.8 |
6 |
| 9 |
학력별 |
중졸 이하 |
26.1 |
13.7 |
6.6 |
46.2 |
7.4 |
| 10 |
학력별 |
고졸 이하 |
46.3 |
8.5 |
6.9 |
36.5 |
1.7 |
| 11 |
학력별 |
대졸 이하 |
57.4 |
6.6 |
4.9 |
30.7 |
0.4 |
| 12 |
학력별 |
대학원 이상 |
65.3 |
3.8 |
0.6 |
29.6 |
0.6 |
| 13 |
소득별 |
100만원 미만 |
22.7 |
10.3 |
3.6 |
50.7 |
12.7 |
| 14 |
소득별 |
100-200만원 미만 |
34.3 |
11.5 |
7.1 |
41.5 |
5.6 |
| 15 |
소득별 |
200-300만원 미만 |
48.8 |
12.3 |
6.8 |
30.7 |
1.4 |
| 16 |
소득별 |
300-400만원 미만 |
54.9 |
7.1 |
6.5 |
31.2 |
0.3 |
| 17 |
소득별 |
400-500만원 미만 |
56.1 |
5 |
5.3 |
33.0 |
0.6 |
| 18 |
소득별 |
500만원 이상 |
52.3 |
7.1 |
5.1 |
34.9 |
0.6 |
| 19 |
혼인상태별 |
기혼 |
50.7 |
7.8 |
5.4 |
34.9 |
1.2 |
| 20 |
혼인상태별 |
미혼 |
54.3 |
7.1 |
5.4 |
32.2 |
1 |
| 21 |
혼인상태별 |
이혼/별거 |
47.4 |
8.3 |
6.8 |
34.9 |
2.7 |
| 22 |
혼인상태별 |
사별 |
25.2 |
14.9 |
8.9 |
42.9 |
8 |
DF_G = DF[DF['대분류'] == '성별'].copy()
DF_G
| |
대분류 |
분류 |
운동을 할 충분한 시간이 없어서 |
함께 운동을 할 사람이 없어서 |
운동을 할 만한 장소가 없어서 |
운동을 싫어해서 |
기타 |
| 1 |
성별 |
남자 |
55.2 |
7.9 |
5.5 |
29.8 |
1.6 |
| 2 |
성별 |
여자 |
45.0 |
8.3 |
6.0 |
38.8 |
1.8 |
DF_G.drop(columns = '대분류', inplace = True)
DF_G
| |
분류 |
운동을 할 충분한 시간이 없어서 |
함께 운동을 할 사람이 없어서 |
운동을 할 만한 장소가 없어서 |
운동을 싫어해서 |
기타 |
| 1 |
남자 |
55.2 |
7.9 |
5.5 |
29.8 |
1.6 |
| 2 |
여자 |
45.0 |
8.3 |
6.0 |
38.8 |
1.8 |
DF_G.set_index('분류', inplace = True)
DF_G
| |
운동을 할 충분한 시간이 없어서 |
함께 운동을 할 사람이 없어서 |
운동을 할 만한 장소가 없어서 |
운동을 싫어해서 |
기타 |
| 분류 |
|
|
|
|
|
| 남자 |
55.2 |
7.9 |
5.5 |
29.8 |
1.6 |
| 여자 |
45.0 |
8.3 |
6.0 |
38.8 |
1.8 |
import matplotlib.pyplot as plt
figure, ax = plt.subplots(2, 2, figsize = (10,10))
DF_G['운동을 할 충분한 시간이 없어서'].plot.pie(explode = [0, 0.02],
ax = ax[0, 0],
autopct = '%.1f%%')
ax[0, 0].set_title('운동을 할 충분한 시간이 없어서')
ax[0, 0].set_ylabel('')
DF_G['함께 운동을 할 사람이 없어서'].plot.pie(explode = [0, 0.02],
ax = ax[0, 1],
autopct = '%.1f%%')
ax[0, 1].set_title('함께 운동을 할 사람이 없어서')
ax[0, 1].set_ylabel('')
DF_G['운동을 할 만한 장소가 없어서'].plot.pie(explode = [0, 0.02],
ax = ax[1, 0],
autopct = '%.1f%%')
ax[1, 0].set_title('운동을 할 만한 장소가 없어서')
ax[1, 0].set_ylabel('')
DF_G['운동을 싫어해서'].plot.pie(explode = [0, 0.02],
ax = ax[1, 1],
autopct = '%.1f%%')
ax[1, 1].set_title('운동을 싫어해서')
ax[1, 1].set_ylabel('')
plt.show()

DF_A = DF[DF['대분류'] == '연령별'].copy()
DF_A.drop(columns = '대분류', inplace = True)
DF_A.set_index('분류', inplace = True)
DF_A
| |
운동을 할 충분한 시간이 없어서 |
함께 운동을 할 사람이 없어서 |
운동을 할 만한 장소가 없어서 |
운동을 싫어해서 |
기타 |
| 분류 |
|
|
|
|
|
| 10대 |
55.7 |
6.1 |
5.6 |
32.2 |
0.3 |
| 20대 |
54.8 |
6.9 |
5.2 |
32.9 |
0.1 |
| 30대 |
58.1 |
5.5 |
4.6 |
31.6 |
0.2 |
| 40대 |
57.7 |
6.8 |
5.2 |
29.4 |
1 |
| 50대 |
50.1 |
9.2 |
7.2 |
32.2 |
1.4 |
| 60대 이상 |
27.5 |
12.8 |
6.9 |
46.8 |
6 |
import matplotlib.pyplot as plt
figure, ax = plt.subplots(1, 3, figsize = (16,8))
explode_set = [0.02, 0.02, 0.02, 0.02, 0.02, 0.02]
DF_A['운동을 할 충분한 시간이 없어서'].plot.pie(explode = explode_set,
ax = ax[0],
autopct = '%1.1f%%')
ax[0].set_title('운동을 할 충분한 시간이 없어서')
ax[0].set_ylabel('')
DF_A['함께 운동을 할 사람이 없어서'].plot.pie(explode = explode_set,
ax = ax[1],
autopct = '%1.1f%%')
ax[1].set_title('함께 운동을 할 사람이 없어서')
ax[1].set_ylabel('')
DF_A['운동을 할 만한 장소가 없어서'].plot.pie(explode = explode_set,
ax = ax[2],
autopct = '%1.1f%%')
ax[2].set_title('운동을 할 만한 장소가 없어서')
ax[2].set_ylabel('')
plt.show()

DF_V = DF[DF['대분류'] == '학력별'].copy()
DF_V.drop(columns = '대분류', inplace = True)
DF_V.set_index('분류', inplace = True)
DF_V
| |
운동을 할 충분한 시간이 없어서 |
함께 운동을 할 사람이 없어서 |
운동을 할 만한 장소가 없어서 |
운동을 싫어해서 |
기타 |
| 분류 |
|
|
|
|
|
| 중졸 이하 |
26.1 |
13.7 |
6.6 |
46.2 |
7.4 |
| 고졸 이하 |
46.3 |
8.5 |
6.9 |
36.5 |
1.7 |
| 대졸 이하 |
57.4 |
6.6 |
4.9 |
30.7 |
0.4 |
| 대학원 이상 |
65.3 |
3.8 |
0.6 |
29.6 |
0.6 |
import matplotlib.pyplot as plt
figure, ax = plt.subplots(1, 2, figsize = (16,8))
explode_set = [0.02, 0.02, 0.02, 0.02]
DF_V['운동을 할 충분한 시간이 없어서'].plot.pie(explode = explode_set,
ax = ax[0],
autopct = '%.1f%%')
ax[0].set_title('운동을 할 충분한 시간이 없어서')
ax[0].set_ylabel('')
DF_V['운동을 싫어해서'].plot.pie(explode = explode_set,
ax = ax[1],
autopct = '%.1f%%')
ax[1].set_title('운동을 싫어해서')
ax[1].set_ylabel('')
plt.show()
