이전 분석 글
6. 하나의 함수로 분석하기
하나의 분수로 plot을 그리기 위해선 이 전에 정의했던 함수들을 이용하면 쉽게 정의할 수 있다. 먼저 sigle answer와 multiple answer에 따라 다른 함수를 이용하여 plot을 그렸기 때문에 이에 대한 if-else 문을 작성하여 정의해야 한다.
question.index
Index(['Duration (in seconds)', 'Q2', 'Q3', 'Q4', 'Q5', 'Q6_1', 'Q6_2', 'Q6_3', 'Q6_4', 'Q6_5',
...
'Q44_3', 'Q44_4', 'Q44_5', 'Q44_6', 'Q44_7', 'Q44_8', 'Q44_9', 'Q44_10', 'Q44_11', 'Q44_12'],
dtype='object', length=296)
question의 index에는 각각의 질문 번호가 리스트에 담겨있다. 여기서 sigle answer의 경우 질문 번호로 끝나지만 multiple answer는 각각의 질문에 대한 여러 응답이 포함되어 있어 뒤에 언더바(_)와 answer number가 붙는다. 이러한 점을 이용하여 사용자가 qestion number로 검색했을 때 완전히 일치하는 경우는 sigle answer, 완전히 일치하는 게 없는 경우 multiple answer라고 할 수 있다.
sigle answer plot
def show_countplot_by_qno(qno, fsize = (10,6), order=None):
# 정렬 순서
if not order:
order = answer[qno].value_counts().index
# plot size
plt.figure(figsize = fsize)
# plot
sns.countplot(data = answer, y = qno, palette = "Blues_r",
order = order).set_title(question[qno])
multiple answer plot
def show_multiple_answer_plot(qno):
multiple_answer = get_multiple_answer_by_qno(qno)
plt.figure(figsize = (10,6))
sns.barplot(data = multiple_answer, x = "count", y = multiple_answer.index,
palette = "Blues_r").set_title(get_question_title_by_qno(qno))
위의 sigle answer plot과 multiple answer plot 함수를 바탕으로 함수를 정의할 수 있다.
def show_plot_by_qno(qno):
if qno in question.index:
show_countplot_by_qno(qno)
else:
show_multiple_answer_plot(qno)
Q8. What is the highest level of formal education that you have attained or plan to attain wtihin the next 2 years?
show_plot_by_qno("Q8")
Q8은 앞으로 2년 이내에 취득하거나 계획이 있는 정규 교육의 최고 수준, 즉 사용자의 학력과 관련된 질문이다. 이에 따른 답변으로 가장 많은 사용자가 석사 학위를, 그다음으로 학사 학위를 갖고 있거나 가질 예정이라 답변했다. 또한 전문 박사 학위와 고등학교 이후 정규교육을 받지 않은 사용자가 비슷한 숫자로 가장 적은 비율을 차지했다.
Q12. What programming languages do you use on a regular basis?
show_plot_by_qno("Q12")
Q12는 사용자가 정기적으로 사용하는 언어에 대한 질문이다. 이에 대한 답변으로 가장 많은 사용자들이 사용하는 언어로는 python이 선택되었다. 그다음으로 SQL이 선택되었으며 R과 C++이 그 다음을 이었다. kaggle을 통해 많은 데이터를 바탕으로 다양한 분석모델을 세우고 시각화하는것을 주로 이용하기 때문에 이와 같은 결과가 나왔을 것이라 생각된다. 또한 통계분석과 시각화에 최적화 된 R의 사용자가 python에 비해 2배 이상 넘게 차이난다는 점이 의와의 결과였다.
Q13. Which of the following integrated development environments (IDE's) do you use on regular basis?
show_plot_by_qno("Q13")
Q13은 사용자가 주로 사용하는 개발환경에 대한 질문이다. 이에 대한 답변으로 가장 많은 사용자들이 Jupyter notebook을 선택했으며 그 다음으로 visual studio code, pycharm을 선택했다. 이는 Q12와 관련하여 17500명의 사용자가 Python을 선택했고, 이 중 14000명에 가까운 대다수의 사용자가 Jupyter notebook을 이용하고 있을 것이라 예상할 수 있다.
Q15. Do you use any of the following data visualization libraries on a regular basis?
show_plot_by_qno("Q15")
Q15는 정기적으로 사용하는 데이터 시각화 라이브러리를 묻는 질문이다. 많은 사용자들이 pyhton을 사용하고 있어서 인지 Matplotlib과 seaborn를 가장 많은 이용자가 사용하는 라이브러리로 선택되었다. plotly는 조금 생소한 라이브러리였는데 basic chart 뿐만 아니라 지도와 머신러닝, 3D, customer control plot 등 다양한 기능을 제공하는 라이브러리로 앞으로 많은 사용자들이 관심을 갖게 될 것이라 생각이 들었다.
Q17. Which of the following machine learning frameworks do you use on a regular basis?
show_plot_by_qno("Q17")
Q18. Which of the following ML algorithms do you use on a regular basis?
show_plot_by_qno("Q18")
'Study > Python' 카테고리의 다른 글
[python/pandas]pandas를 이용한 2022 Kaggle Survey 분석 시리즈 (0) | 2023.04.28 |
---|---|
[Python]pandas를 이용한 2022 kaggle survey 분석 및 시각화 - 6 (0) | 2023.04.28 |
[Python]pandas를 이용한 2022 kaggle survey 분석 및 시각화 - 4 (1) | 2023.04.14 |
[Python]pandas를 이용한 2022 kaggle survey 분석 및 시각화 - 3 (0) | 2023.04.13 |
[Python]pandas를 이용한 2022 kaggle survey 분석 및 시각화 - 2 (1) | 2023.04.11 |