QA ≠ Test

QA(품질 보증)는 개념적인 용어이고, TEST는 QA(품질 보증)를 하기 위한 수단이자 방법이다.

TESTING/PROGREMING

[데이터 사이언스 코딩 - Chap.13] 실습 실리콘밸리에 일하는 사람 찾기 문제 풀어보기

품생품사(品生品死) 2021. 8. 19. 21:40
반응형

[문제] 실리콘 밸리에 일하는 사람 찾기 1탄

실리콘 밸리에서 일하는 사람들의 정보가 있습니다.
직업 종류, 인종, 성별 등이 포함되어 있습니다.

silicon_valley_summary.csv
0.52MB


실리콘 밸리에서 일하는 남자 관리자 (Managers)에 대한 인종 분포를 막대그래프로 다음과 같이 그려봅시다.

 

This is data_science_0001
출력 예시 1

 

과제 해설

우선 데이터 내용을 확인해 봅시다.

%matplotlib inline
import pandas as pd

df = pd.read_csv('data/silicon_valley_summary.csv')
df

 

This is data_science_0002
데이터 확인

 

우리는 관리자 (Manager) 직군의 남자에 대한 그래프를 그리려고 합니다.
따라서 'job_category'는 'Manager'이고, 'gender'는 'Male'인 데이터만 뽑아봅시다.

boolean_male = df['gender']=='Male'
boolean_manager = df['job_category'] == 'Managers'

df[boolean_male & boolean_manager]

 

This is data_science_0003
데이터 뽑기

 

각 인종에 대한 데이터만 그래프로 그리고 싶으니, 'race_ethnicity'가 'All'인 경우는 제외해야겠죠?

boolean_male = df['gender']=='Male'
boolean_manager = df['job_category'] == 'Managers'
boolean_not_all = df['race_ethnicity'] != 'All'

df[boolean_male & boolean_manager & boolean_not_all]

 

This is data_science_0004
데이터 제외

 

이제 이 데이터를 plot 메소드를 이용해서 그래프로 그려주면 됩니다.

df[boolean_male & boolean_manager & boolean_not_all].plot(kind='bar', x='race_ethnicity',  y='count')

 

전체 정답 코드는 다음과 같습니다.

%matplotlib inline
import pandas as pd

df = pd.read_csv('data/silicon_valley_summary.csv')
boolean_male = df['gender']=='Male'
boolean_manager = df['job_category'] == 'Managers'
boolean_not_all = df['race_ethnicity'] != 'All'

df[boolean_male & boolean_manager & boolean_not_all].plot(kind='bar', x='race_ethnicity',  y='count')

This is data_science_0005
출력 결과 1

 

실리콘 밸리에 일하는 사람 찾기 2탄

이번에는 어도비 (Adobe)의 직원 분포를 한번 살펴봅시다.
어도비 전체 직원들의 직군 분포를 파이 그래프로 그려보세요.

silicon_valley_details.csv
0.49MB


(인원이 0인 직군은 그래프에 표시되지 않아야 합니다.)

 

This is data_science_0006
출력 예시 2

 

과제 해설

먼저 주어진 데이터를 살펴봅시다.

%matplotlib inline
import pandas as pd

df = pd.read_csv("data/silicon_valley_details.csv")
df

 

This is data_science_0007
데이터 확인 2

 

이제 여기에서 회사 'company'는 'Adobe', 인종 'race'는 'Overall_totals'인 데이터만 골라내 봅시다

boolean_adobe = df['company'] == 'Adobe'
boolean_all_races = df['race'] == 'Overall_totals'
df[boolean_adobe & boolean_all_races]

 

This is data_science_0008
데이터 뽑기 2

 

좀 더 깔끔하게 정리하기 위해서, 'count'가 0인 데이터는 제거하고, 'job_category'가 'Totals' 혹은 'Previous_totals'인 데이터도 제거합시다.

boolean_adobe = df['company'] == 'Adobe'
boolean_all_races = df['race'] == 'Overall_totals'
boolean_count = df['count'] != 0
boolean_job_category = (df['job_category'] != 'Totals') & (df['job_category'] != 'Previous_totals')

df_adobe = df[boolean_adobe & boolean_all_races & boolean_count & boolean_job_category]
df_adobe

 

This is data_science_0009
데이터 제거 2

 

이제 그래프를 그려봅시다.

df_adobe.plot(kind='pie', y= 'count')

 

This is data_science_0010
그래프 그리기1

 

그런데 그래프가 조금 이상합니다.

파이 그래프는 index를 기준으로 이름표를 붙여주게 됩니다.
우리가 원하는 이름표는 직업 카테고리이니까, set_index를 활용해서 index를 바꿔줍시다.

 

df_adobe.set_index('job_category', inplace=True)

 

This is data_science_0011
Index 변경 후 데이터

 

이제 plot 메소드로 그래프를 그려주면 됩니다.

df_adobe.plot(kind='pie', y= 'count')

This is data_science_0012
출력 결과 2

 

전체 정답 코드는 다음과 같습니다.

%matplotlib inline
import pandas as pd

df = pd.read_csv("data/silicon_valley_details.csv")

boolean_adobe = df['company'] == 'Adobe'
boolean_all_races = df['race'] == 'Overall_totals'
boolean_count = df['count'] != 0
boolean_job_category = (df['job_category'] != 'Totals') & (df['job_category'] != 'Previous_totals')

df_adobe = df[boolean_adobe & boolean_all_races & boolean_count & boolean_job_category]
df_adobe.set_index('job_category', inplace=True)
df_adobe.plot(kind='pie', y= 'count')

This is programing_002
Data Science

요약 : sparta coding club, 스파르타 코딩, 코드잇, 노마드 코더, 프로그래밍, 직장인 코딩, 내일 배움 카드 코딩, 밀크티 코딩, 초등 코딩, 아이스크림 코딩, 코딩 소프트웨어, 구글 데이터 스튜디오, 데이터 웨어 하우스 , 빅 데이터 클라우드

반응형