본문 바로가기
데이터 어쩌구/전처리 및 시각화

[부스트코스] 캐글 실습 : 설문조사 응답 분석 (2)

by annmunju 2021. 1. 20.

2021/01/19 - [공부/3. 데이터 사이언스] - [부스트코스] 캐글 실습 : 설문조사 응답 분석 (1)

 

[부스트코스] 캐글 실습 : 설문조사 응답 분석 (1)

www.boostcourse.org/ds116/joinLectures/28015 캐글 실습으로 배우는 데이터 사이언스 부스트코스 무료 강의 www.boostcourse.org 2장 설문조사 분석과 시각화 (www.kaggle.com/kaggle/kaggle-survey-2017) <설문..

mungdo-log.tistory.com

ㄴ 이전 글 이어서

 

 

2. 설문 통계 : 관측 갯수 보기, 비율 보기, 시각화

 

 (1) 성별

- seaborn의 countplot을 이용해 성별 빈도수 보기

sns.countplot(y='GenderSelect', data=mcq)

결과. 남성의 비율이 월등히 많음

 

 (2) 국가별

- [1] 데이터 프레임 con_df에 빈도수 순서대로 저장

con_df = pd.DataFrame(mcq['Country'].value_counts())
con_df

결과 : 가장 많이 나온 국가부터 최소 국가까지 나열됨

- [2] '국가' 열 추가해서 인덱스 내용을 지정하고 응답 수, 국가 순으로 나올 수 있게 조정.

con_df['국가'] = con_df.index
con_df.columns = ['응답 수', '국가']

- [3] 인덱스 내용 초기화해서 순서대로 번호 붙여주기 (0부터~)

con_df = con_df.reset_index().drop('index', axis=1)
con_df.head(20)

결과: 0~19까지 출력. 우리나라는 18위

 

 (3) 연령

- 연령 describe

mcq['Age'].describe()

#count    16385.000000
#mean        32.372841
#std         10.473487
#min          0.000000
#25%         25.000000
#50%         30.000000
#75%         37.000000
#max        100.000000
#Name: Age, dtype: float64

- seaborn의 distplot으로 히스토그램 그려보기

sns.distplot(mcq[mcq['Age']>0]['Age'])

결과 : describe 결과와 비교해보기

 

 (4) 학력

- countplot

sns.countplot(y='FormalEducation',data=mcq)

결과 : 석사학위 > 학사학위 > 박사학위 순

 

 (5) 전공

- 응답수와 비율

mcq_major_count = pd.DataFrame(
    mcq['MajorSelect'].value_counts())
mcq_major_percent = pd.DataFrame(
    mcq['MajorSelect'].value_counts(normalize=True))
mcq_major_df = mcq_major_count.merge(
    mcq_major_percent, left_index=True, right_index=True)
mcq_major_df.columns = ['응답 수', '비율']
mcq_major_df

결과 : 컴퓨터 사이언스 > 수학, 통계학 > 공학 > 전기공학 순

- countplot

plt.figure(figsize=(6,8))
sns.countplot(y='MajorSelect', data=mcq)

 

 (6) 취업여부

- 응답수와 비율

mcq_es_count = pd.DataFrame(
    mcq['EmploymentStatus'].value_counts())
mcq_es_percent = pd.DataFrame(
    mcq['EmploymentStatus'].value_counts(normalize=True))
mcq_es_df = mcq_es_count.merge(
    mcq_es_percent, left_index=True, right_index=True)
mcq_es_df.columns = ['응답 수', '비율']
mcq_es_df

결과 : 풀타임 근무 > 구직중 ..

 

- countplot

plt.figure(figsize=(10,5))
sns.countplot(y='EmploymentStatus', data=mcq)

 

 (7) 코딩 경력

- countplot

sns.countplot(y='Tenure', data=mcq)

 

 

728x90