파이썬 실습 2 (개발자 현황 분석)

2023. 4. 16. 17:15Python(파이썬) 공부

개발자를 꿈꾸다 보니 개발자들이 어떤 언어를 쓰고 나이대는 어떻게

분포되어 있는지 알아보고싶었다.

이번에 데이터파일은 stackoverflow에서 가져왔는데

모든 개발자가 설문에 참여한 것도 아니기 때문에 정확성은 조금 떨어질 것 같다.

 

 

먼저 데이터를 가져와보자

https://insights.stackoverflow.com/survey

 

Stack Overflow

Use Stack Overflow Insights and get information required to understand, reach, and attract developers.Improve tech hiring, recruiting, developer marketing, and and planning initiatives.

insights.stackoverflow.com

 

 

바로 2022년도 CSV 파일을 다운할 수 있는 링크가있다

다운한 파일의 압축을 풀어준 뒤 폴더 그대로 개발을 공부할 폴더에 넣어줬다.

 

 

 

이제 준비는 완료됐다. 분석 하러 가보자

 

데이터를 가져온 것을 볼 수 있다.

 

 

이 때, 읽어올 파일의 폴더명과 파일명을 잘 입력해야 한다. 오타가 있거나 경로가 잘못 되었다면

가져오지 못하기 때문에 꼭 본인이 넣은 경로 위치를 잘 보고 작성 해야된다.

 

 

 

 

데이터의 형태를 먼저 파악해보기 위해 head() 함수를 써서 확인 해봤다.

이제 필요한 열만 선별해서 가져올 것이다.

 

 

이번에 선별해서 가져올 칼럼들은

Age - 나이

Country - 국가

LanguageHaveWorkedWith - 다룰줄 아는 프로그래밍 언어

LearnCode - 프로그래밍을 배운 방법

을 가져와보자

 

 

 

 

잘 가져왔다면 이제 응답자들의 연령대를 가져와 중복된 값을 삭제하고 유일 데이터를 출력하는

메서드 drop_duplicates() 를 사용해서 출력하자

연령대 별로 가져왔다.

 

 

 

이번엔 같은 연령대 개발자를 그룹화해보자!

 

값을 가져왔으니 이제 시각화 해보자

여기서는 막대그래프로 분포도를 시각화 하는게 꺾은선그래프보다 더 효율적일 것이다.

plot.bar()를 이용해 막대그래프로 만들어 보자

 

선택한 연령대 별 의 데이터를 보기엔 수평그래프가 더 좋아보인다.

수평그래프로 그리고 싶다면 horizontal의 앞글자를 따 plot.barh()로 h만 붙혀주면 된다

또 이렇게 보니 나이 순 별로 정렬하고 싶어졌다.

그럴 땐 먼저 현재 색인 정보를 알아야 한다.

 

 

 

 

 

이제 이 색인 정보들을 reindex()를 통해 다시 정렬 해 주었다.

드디어 다 했다.....

이제 그래프를 이용해 시각화 해볼 시간이다.

 

 

이렇게 훨씬 보기 좋아지게 완성 되었다..

확실히 18~ 44세 까지 많은 분포도를 차지 했다는 걸 알 수 있다.

 

 

 

 

이번엔 국가별 개발자 수를 시각화 해보고 싶다.

먼저 데이터에서 groupby()를 이용해 Country를 가져왔다.

 

그리고 이번엔 파이그래프로 보려고 했다.

정말 별로다.

 

 

 

 

그래서 그래프에 표현할 나라의 수를 15개로 조정해서 그려야겠다.

이 때는 nlargest() 함수를 사용하면 상위의 원하는 갯수까지만 가져올 수 있다.

 

 

 

 

이제 다시 파이그래프로 시각화 해보자 이번에는 figsize를 이용해 크기도 조절 해봤다.

훨씬 보기 좋고 간결해졌다. 여기 한국이 없는 이유는 아마도 설문조사에 다들 응하지 않아서 인 것 같다.

아무래도 설문조사를 통해 정보를 받아오기 때문에 공신력이 떨어질 수 밖에 없긴하다..

 

 

 

 

 

 

 

이번에는 사용해본 프로그래밍 언어를 시각화 해서 보도록 하자!

먼저 추출 했었던 칼럼명을 이용해 추출하자

LanguageHaveWorkedWith - 다룰줄 아는 프로그래밍 언어

 

; 로 구분되어 있는게 보인다.

이제 이 사용해본 언어 리스트를 ;구분자 기준으로 split()함수를 통해 분리 시키자

배열로 저장된게 보인다.

 

 

 

 

 

이제 이 리스트의 항목을 explode() 함수를 이용해 열로 나누어 보자!

나누었으니 이제 언어별로 응답한 수를 계산해보자!

 

 

 

 

 

언어별로 몇명이 응답했는지 알 수 있다.

물론 이렇게 표를 봐도 되지만 좀 더 보기 쉽게 파이그래프로 그려보자

 

 

 

파이그래프는 3시부터 반시계 방향으로 돌기 때문에 가장 많이 사용하는 언어는

JavaScript 인것을 알 수 있다.

하지만! 여기서 아쉬운 부분이 있다. 값 마다 몇 퍼센트 인지 알고싶다.

 

파이그래프에서 백분율을 표기하기 위해서는 autopct속성을 사용하면 된다.

이렇게 백분율을 표기해보니 훨씬 보기 좋은 것 같다.