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

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

by annmunju 2021. 1. 25.

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

 

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

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

mungdo-log.tistory.com

ㄴ 이전글 이어서...


Q7. 데이터 사이언스 직무에서 가장 중요하다고 생각되는 스킬은?

 

job_features = [
    x for x in mcq.columns if x.find(
        'JobSkillImportance') != -1 
    and x.find('JobSkillImportanceOther') == -1]

jdf = {}
for feature in job_features:
    a = mcq[feature].value_counts()
    a = a/a.sum()
    jdf[feature[len('JobSkillImportance'):]] = a

jdf = pd.DataFrame(jdf).transpose()
jdf

- 시각화

plt.figure(figsize=(10,6))
sns.heatmap(jdf.sort_values("Necessary", 
                            ascending=False), annot=True)

 

jdf.plot(kind='bar', figsize=(12,6), 
         title="Skill Importance in Data Science Jobs")
plt.xticks(rotation=60, ha='right')

 

Q8. 데이터 과학자의 평균 급여는 얼마나 될까?

 - 응답자 수

mcq[mcq['CompensationAmount'].notnull()].shape

#(5224, 228)

 

mcq['CompensationAmount'] = mcq[
    'CompensationAmount'].str.replace(',','')
mcq['CompensationAmount'] = mcq[
    'CompensationAmount'].str.replace('-','')

# 환율계산을 위한 정보 가져오기
rates = pd.read_csv('conversionRates.csv')
rates.drop('Unnamed: 0',axis=1,inplace=True)

salary = mcq[
    ['CompensationAmount','CompensationCurrency',
     'GenderSelect',
     'Country',
     'CurrentJobTitleSelect']].dropna()
salary = salary.merge(rates,left_on='CompensationCurrency',
                      right_on='originCountry', how='left')
salary['Salary'] = pd.to_numeric(
    salary['CompensationAmount']) * salary['exchangeRate']
salary.head()

 

 - 최댓값 최솟값 중간값 보기

print('Maximum Salary is USD $',
      salary['Salary'].dropna().astype(int).max())
print('Minimum Salary is USD $',
      salary['Salary'].dropna().astype(int).min())
print('Median Salary is USD $',
      salary['Salary'].dropna().astype(int).median())
      
#Maximum Salary is USD $ 208999999
#Minimum Salary is USD $ -2147483648
#Median Salary is USD $ 53812.0

 

 - 500,000불을 초과하는 값만. 시각화.

plt.subplots(figsize=(15,8))
salary=salary[salary['Salary']<500000]
sns.distplot(salary['Salary'])
plt.axvline(salary['Salary'].median(), linestyle='dashed')
plt.title('Salary Distribution',size=15)

 - 국가별 임금 그래프 시각화

plt.subplots(figsize=(8,12))

sal_coun = salary.groupby(
    'Country')['Salary'].median().sort_values(
    ascending=False)[:30].to_frame()

sns.barplot('Salary', 
            sal_coun.index,
            data = sal_coun,
            palette='RdYlGn')

plt.axvline(salary['Salary'].median(), linestyle='dashed')
plt.title('Highest Salary Paying Countries')

 

 - 성별과 임금 상자그림 (box plot)

plt.subplots(figsize=(8,4))
sns.boxplot(y='GenderSelect',x='Salary', data=salary)

 

 - 우리나라 데이터. 성별과 임금 상자그림

salary_korea = salary.loc[(salary['Country']=='South Korea')]
plt.subplots(figsize=(8,4))
sns.boxplot(y='GenderSelect',x='Salary',data=salary_korea)

격차가 너무 심한디..?

 

 - 몇명이 응답했길래..?

salary_korea.shape

#(26, 8)

 - 대한민국 여성 응답자의 응답 내용

salary_korea[salary_korea['GenderSelect'] == 'Female']

3명입니다...

 - 대한민국 남자 응답자의 응답 내용

salary_korea_male = salary_korea[
    salary_korea['GenderSelect']== 'Male']
salary_korea_male

 

 

728x90