설문조사를 분석하고 시각화하는데 좋은 자료가 있어서 포스팅을 한다.

자료는 아래서 참조하였다.

ref.
corazzon / KaggleStruggle / kaggle-survey-2017 / Kaggle-ML-DS-survey-2017-EDA-FAQ.ipynb
https://github.com/corazzon/KaggleStruggle/blob/master/kaggle-survey-2017/Kaggle-ML-DS-survey-2017-EDA-FAQ.ipynb



분석에 필요한 자료는 아래링크에서 Data탭에 들어가면 구할 수 있다.



https://www.kaggle.com/kaggle/kaggle-survey-2017



==================================== Python ====================================

import pprint


import pandas as pd

import numpy as np

from scipy import stats

import matplotlib.pyplot as plt

# 이미지를 그려주는 모듈.

import seaborn as sns




# 데이터 프레임의 컬럼을 최대 12개로 늘린다.

pd.set_option('display.max_columns', 12)


# schema.csv를 question 객체에 담기

question = pd.read_csv('schema.csv')


# multipleChoiceResponses.csv를 mcq에 담기. encoding='ISO-8859-1'은 범용적으로 사용되는 인코딩이다.

mcq = pd.read_csv('multipleChoiceResponses.csv', encoding='ISO-8859-1', low_memory=False)


# 한국 자료를 따로 설정해준다.

korea = mcq.loc[mcq.Country == 'South Korea']






# 주관식 응답을 읽어온다.

ff = pd.read_csv('freeformResponses.csv',

                 encoding="ISO-8859-1", low_memory=False)

    # print(ff.shape)  # 데이터 확인. (16716, 62). 16716응답.

qc = question.loc[question['Column'].str.contains('PersonalProjectsChallengeFreeForm')]

    # print(qc.Question.values)  # 데이터 확인


# 위에서 만든 ff에서 상위 15개만 가져온다.

# 동일한 내용인데 대소문자가 구분되어 값이 나뉘는 문항이 있으므로 답변 전체를 소문자로 바꿔준다.

ppcff = ff['PersonalProjectsChallengeFreeForm'].str.lower().value_counts().head(15)

ppcff.name = '응답수'

    # print(pd.DataFrame(ppcff))

ppcff = pd.DataFrame(ppcff)

print(ppcff)

plt.title('데이터셋을 다루는데 가장 어려운 점은?')

sns.barplot(x=ppcff.응답수, y=ppcff.index)

plt.show()






# 데이터 사이언스 업무에서 가장 많은 시간을 필요로 하는 일은?

# time_features = [

#     x for x in mcq.columns if x.find('Time') != -1][4:10]

# tdf = {}

# for feature in time_features:

#     tdf[feature[len('Time'):]] = mcq[feature].mean()

#

# tdf = pd.Series(tdf)

# print(tdf)

# print()

#

# plt.pie(tdf, labels=tdf.index,

#         autopct='%1.1f%%', shadow=True, startangle=140)

# plt.axis('equal')

# plt.title("Percentage of Time Spent on Each DS Job")

# plt.show()









==================================== Python ====================================

+ Recent posts