用資料分析的方法來探討 — 如何成為資料科學家?-系列1

Data Scientist: The Sexiest Job of the 21st Century (原文連結:https://hbr.org/2012/10/data-scientist-the-sexiest-job-of-the-21st-century)
資料科學家在美國的平均年薪 (網站連結:https://www.glassdoor.com/Salaries/data-scientist-salary-SRCH_KO0,14.htm)

資料科學是什麼?

構成資料科學的八大學科

1. 數理能力

(圖片來源:https://commons.wikimedia.org/wiki/File:Matrix_logo.svg)
(圖片來源:https://www.vecteezy.com/vector-art/143608-linear-icons-with-charts-and-statistics)

2. 資訊科學能力

3. 應用領域知識

所以…要怎麼成為資料科學家呢?

  • 資料科學家主要工作內容有哪些?
  • 資料科學家會使用哪種程式語言?
  • 如果要深入資料科學,可以透過什麼資源來了解呢?

一、資料集簡介

# 載入pandas套件
import pandas as pd
# 讀取資料
multiple_choice = pd.read_csv('multiple_choice_responses.csv')
multiple_choice.head(8)
圖一、讀取資料

二、資料科學家主要工作內容有哪些?

Q5. Select the title most similar to your current role (or most recent title if retired): — Selected Choice

Q9. Select any activities that make up an important part of your role at work: (Select all that apply) — Selected Choice

1. 資料預處理

# 抓出第九題的資料
lst = []
for i in multiple_choice.columns:
if i[:2] == 'Q9':
lst.append(i)
activity = multiple_choice[lst]
# 加入Q5的資料
activity = activity.join(multiple_choice.iloc[1:,6],lsuffix='Q9_Part_1', rsuffix='Q5')
# 將Q5擷取出「資料科學家」
activity = activity[activity['Q5'] == 'Data Scientist']
activity
圖二、資料預處理
# 抓出選項內容
choose = multiple_choice[lst].iloc[0].apply(lambda x: ''.join(x.split('-')[2:]))
choose.values
圖三、Q9複選題選項
activity_df = pd.DataFrame()# 將選項題目放入
activity_df['choice'] = list(choose.values)
# 計算選擇數量並放入
activity_df['value'] = list(map(lambda i: len(activity.iloc[:,i].dropna()), list(range(activity.shape[1]-1))))
activity_df
圖四、資料科學家在Q9複選題的選擇數量

2. 資料視覺化

# 刪除'Other'及'Text'
activity_df = activity_df.iloc[:-2, :]
# 由大到小排序
activity_df = activity_df.sort_values(by = ['value'], ascending=False)
# 自動儲存plotly圖表
import plotly as py
pyplt = py.offline.plot
# 繪製
import plotly.graph_objects as go
fig = go.Figure(go.Bar(
x=[*activity_df['value']],
y=[*activity_df['choice']],
orientation='h'),
go.Layout(yaxis=dict(autorange="reversed")))
fig.update_layout(title_text='The Activity of Data Scientist')
fig.show()
# 圖表儲存
pyplt(fig, filename ='The Activity of Data Scientist.html')
圖五、The Activity of Data Scientist

3. 分析

  • 分析並了解資料對產品或企業決策的影響
  • 探索機器學習應用領域
  • 改善現有的機器學習模型

三、資料科學家會使用哪種程式語言?

Q18. What programming languages do you use on a regular basis? (Select all that apply) — Selected Choice

Q19. What programming language would you recommend an aspiring data scientist to learn first? — Selected Choice

1. 各職業使用語言資料預處理

# 抓出Q18的資料
lst = []
for i in multiple_choice.columns:
if i[:3] == 'Q18':
lst.append(i)
job = multiple_choice[lst].iloc[1:,]
# 加入Q5的資料
job = job.join(multiple_choice.iloc[1:,6],lsuffix='Q18_Part_1', rsuffix='Q5')
# 提出Q18複選題的選項
choose = multiple_choice[lst].iloc[0].apply(lambda x: ''.join(x.split('-')[2:]).replace(' ',''))
job.columns = list(choose.values) + ['Q5']
job
圖六、各職業使用語言資料預處理(抓出Q18及Q5)
# dataframe整理成Treemap的格式
df = job[['Python','Q5']].dropna()
df.columns= ['language','Q5']
for language in list(choose.values[1:-3]):
lan_df = job[[language,'Q5']].dropna()
lan_df.columns= ['language','Q5']
df = df.append(lan_df)
df['value'] = 1
df
圖七、 各職業使用語言資料預處理(整理成Treepmap格式)

2. 各職業推薦語言資料預處理

# 取出Q19、Q5資料,並去除空值
recommend = multiple_choice[['Q19','Q5']].iloc[1:,].dropna()
recommend.columns = ['language','job']
recommend['value'] = 1
recommend
圖八、各職業推薦語言資料預處理

3. 各職業使用語言資料視覺化

# 繪製各職業使用語言Treemap
import plotly.express as px
fig = px.treemap(df, path=['Q5', 'language',], values='value', color='language', color_discrete_sequence=px.colors.qualitative.Pastel,
title ='Language Used For Each Jobs')
fig.show()
# 圖表儲存
pyplt(fig, filename ='Language Used For Each Jobs.html')
圖九、各職業使用語言Treemap
影一、plotly treemap展示

4. 各職業推薦語言資料視覺化

# 繪製各職業推薦語言Treemap
import plotly.express as px
fig = px.treemap(recommend, path=['job', 'language',], values='value', color='language', color_discrete_sequence=px.colors.qualitative.Pastel,
title ='Language Recommend For Each Jobs')
fig.show()
# 圖表儲存
pyplt(fig, filename ='Language Recommend For Each Jobs.html')
圖十、各職業使用語言Treemap

5. 分析

  • Python -> 容易撰寫、直觀、適合入門,在資料整理使用機器學習演算法執行深度學習時建議使用。
  • R -> 在統計分析視覺化上功能強大,適合用來數據檢視製作視覺化圖表統計分析。
  • SQL -> 用於建立、查詢、更新及管理關聯式資料庫系統。
歡迎加入我們的Telegram獲取即時訊息!https://t.me/marketingdatascience
歡迎加入我們的Line@獲取即時訊息!https://line.me/R/ti/p/%40cde8265r

您可能有興趣:

📢TMR全新線上直播課程

📢TMR為您量身打造「全方位數據課程」

【TMR】 X 【 好學校】
👨‍💼Python商業全系列數位課程👨‍💼

#行銷人必學實用Python課程

#實用投資分析課程

#好學校企業百大課程之一:

【TMR】 X 【工研院】
🏭工業4.0大數據智慧應用課程🏭

2020課程地圖

🏆 國內第一本行銷資料科學專書

🏆 國內第一本行銷資料科學 ” 實作 ” 專書

🏆國內第一本「股票小祕書」專書

  1. 天瓏書局:http://bit.ly/stock-secretaryBot
  2. 博客來:https://www.books.com.tw/products/0010833772

--

--

--

Marketing data science. 台灣第一個行銷資料科學(MDS)知識部落,本粉絲專頁在探討行銷資料科學之基礎概念、趨勢、新工具和實作,讓粉絲們瞭解資料科學的行銷運用,並開啟厚植數據分析能力之契機。粉絲專頁:https://www.facebook.com/MarketingDataScienceTMR

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
行銷資料科學

行銷資料科學

Marketing data science. 台灣第一個行銷資料科學(MDS)知識部落,本粉絲專頁在探討行銷資料科學之基礎概念、趨勢、新工具和實作,讓粉絲們瞭解資料科學的行銷運用,並開啟厚植數據分析能力之契機。粉絲專頁:https://www.facebook.com/MarketingDataScienceTMR

More from Medium

The Paradox of Automation

Macro backDROP

Code-is-Law & Blockchain’s Time Dimension Challenges