데이터 분석/python

[python] 캐글 설문조사 Q1~Q6

PARK JI HO 2023. 12. 26. 20:41

데이터 형식

 

question = raw.iloc[0]

 

0번째 행이 질문의 내용이기 때문에 iloc를 이용해서 0번째 행을 question 변수에 할당

 

answer = raw.drop([0])

0번째 행은 질문이니까 제거하고 answer에 할당

 

각각 찍어보면 이렇게 나온다.

 

answer["Q1"].value_counts(normalize = True) * 100

나이에 대한 답변이 담겨있는 Q1을 value_counts를 normalize 해주고 * 100을 하게 되면

25-29  20.081....

22-24 18.895....

이런 식으로 비율로 표현이 된다.

 

sns.countplot(data = answer.sort_values("Q1")
              , x ="Q1"
              , palette = "Blues_r"
             ).set_title(question["Q1"])     
 # Q1 값으로 정렬해서 그래프 그리기  # 팔레트 blues_r은 빈도수가 높을수록 진하게

seaborn의 countplot을 이용하여 data 에는 Q1의 답변을  밸류 별로 정렬해서 

x축에는 Q1값 즉 나이 범주가 들어간다

palett 와 set_title을 이용하여 색과 제목도 변경할 수 있다.

 

Q1 ~ Q6 까지는 단순하게 답변을 하나만 선택할 수 있는 질문이다.

그래서 전처리와 그래프를 수월하게 하려면 함수를 사용해도 된다.

 

def show_countplot_by_qno(qno, fsize = (10,6), order = None):          # qno를 인자로 받는 함수 생성
    
    if not order :
        order = answer[qno].value_counts().index              #빈도수 높은 순으로 정렬
    plt.figure(figsize = fsize)
    sns.countplot(data=answer, y=qno, palette = "Blues_r",
                  order = order
                 ).set_title(question[qno]) # qno를 1로 받으면 1번 질문 제목을 그래프 제목에 할당

 

이 함수를 사용하면 Q1~ Q6까지 넣으면 자동으로 빈도수를 계산해서 높은 순으로 정렬해 주고

countplot 그래프를 그려준다.

 

 

 

How to use 🐼pandas filter🎨 in survey EDA 📊

Explore and run machine learning code with Kaggle Notebooks | Using data from 2020 Kaggle Machine Learning & Data Science Survey

www.kaggle.com

 

[지금 무료] 캐글 설문조사로 데이터 분석 입문하기 강의 - 인프런

캐글은 어떤 플랫폼일까요? 해마다 캐글에서는 전세계 사용자를 대상으로 설문조사를 합니다. 데이터 사이언스를 배우고자 할 때 여러 궁금증이 생깁니다. 지금 시작하기에 너무 늦지는 않았을

www.inflearn.com