作為一名數據科學家,必須要會使用SQL嗎?

2020-12-16 讀芯術

全文共1852字,預計學習時長5分鐘

圖源:unsplash

一間屋子10個人,可能其中5位數據科學家都表示需要結構化查詢語言(SQL)才能工作,另一半人則表示還有其他方法可以處理數據。

作為一名數據科學家,你使用什麼方法?你還有其它方法嗎?數據科學家必須要會使用SQL嗎?本文將討論SQL在數據科學中的作用,以及結構化查詢語言(SQL)的替代方法。

SQL

是否需要了解SQL具體取決於個人所屬公司和數據科學團隊。有些團隊有數位數據工程師和數據分析師以及機器學習工程師,而有些團隊則只有一位數據科學家。所以數據科學家是否需要了解SQL,你心中自有答案。

但是,討論一下是否需要了解SOL的原因,以及不需要SOL的時機是頗為有趣且十分重要,討論這個問題也有助於即將入職的數據科學家了解工作期望。以下是我使用SQL的原因:

· 使用SQL查詢表格以獲得有用的數據集

· 保持自主感(儘管也需要幫助)

· 在現有的SQL查詢中隨時發現和創建新功能

儘管數據科學可以看作是只專注於Python和R以及複雜機器學習算法的工作,但如果不充分利用SQL的優勢,一個團隊可能很難執行數據科學運算進程。不過,有時SQL並不是必需的,這取決於個人在數據科學領域的具體角色。

如果能從數據工程師或數據分析師那裡獲得一些幫助,便可以參考其他替代方法。此外,當SQL查詢功能完全不符合專業時也不需要SQL,因為此時專注點在於數據科學模型開發,類似於在已獲取的數據上相互測試各種機器學習算法。

替代方法

從數據分析師或數據工程師處獲取數據集後,對數據集的下一步改進就是創建新功能要素,而不只是直接從數據表中獲取欄位。例如,如果數據集中有10個欄位,則可以開發幾個全新指標作為欄位,而不是通過計算第1列和第2列來直接創建新的第11列。除了SQL以外,另一個比較容易進行此計算的工具是pandas。充分理由顯示,數據分析師和數據科學家已廣泛使用該庫。

使用pandas,能夠快速執行複雜計算,並且只需一行代碼。有時很難使用SQL計算數據,因為它在視覺上呈多行布局(僅為個人看法)。

以下是一些常用的pandas 數據框操作,旨在方便化數據集特徵工程運算。

* groupby* items* loc* iloc* iteritems*keys* iterrows* query (this operation is quite similar to SQL quering, Ihighly recommend)* aggregate* corr* mean, median, min, and max* quantile*rank* sum* std* var* append* merge* join* sort_values* isnull* notna*between_time

大量操作都可以應用到pandas 數據框架中。個人最喜歡的操作:

· 分組(Groupby)——對數據進行分組,並對所述組執行進一步的操作。

· 查詢(query)——一種類似SQL的查詢方式,但在個人的數據框架中。

圖源:unsplash

個人認為,計算全新的欄位或指標更容易,這些欄位或指標最終將用於個人pandas數據科學模型。不過,有人偏愛只在SQL中執行計算。對我來說,使用SQL的好處是我不必一次性添加所有新特性(查詢時間過長),這樣當我想添加一個新特性時,操作就非常簡單有效。

數據科學家需要了解SQL嗎?答案不是絕對的。這取決於公司、團隊,有時還取決於個人偏好。

使用SQL查詢,可以使用戶受益匪淺,所以如果你還不了解SQL,可以學習其使用方法。如果你偏愛類似pandas的替代方法,你可能是龐大數據科學團隊中的一員。

一些數據科學家同時使用SQL和Python來為模型創建最終的數據集。pandas最獨特的地方在於它有一個類似於SQL的查詢操作,用戶可以在pandas數據框中綜合使用SQL和Python。所以,想好你自己的解決方案了嗎?

留言點讚關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • 如何使用 SQL Server FILESTREAM 存儲非結構化數據?
    要使用FILESTREAM,必須將其激活。FILESTREAM可在兩個級別上啟用。第一級是SQL Server級別。該級別在安裝SQL Server時被啟用。如果沒這樣做的話,可以選中SQL Server FILESTREAM選項卡上的複選框,通過SQL Server 配置管理器來啟用(圖1)。圖1.
  • 適用於初學者和分析師的SQL –使用Python入門SQL
    SQL是每個分析師和數據科學家都應該知道的語言。沒有逃避這個。在您的分析或數據科學面試回合中,您會遇到很多SQL問題,特別是如果您是該領域的新手。如果您最近一直在推遲學習SQL,那麼現在該採取行動並開始動手了。您將必須了解資料庫以處理數據,所以為什麼不立即開始您的SQL旅程呢?我個人使用SQL已經有一段時間了,可以證明它的用處,尤其是在這些黃金數據驅動的時代。
  • 一名數據科學家的新年計劃
    如果你看到這篇文章的題目開始閱讀本文,那麼一定是數據科學激起了你的興趣。你肯定希望2016年成為你的轉運年,對不對?如果你從今天起堅持去執行這些新年計劃,轉運的可能性就會更大。要知道,成為一名數據科學家不能一蹴而就,需要的是一個過程。因此,朝目標邁進的過程中一定要充滿耐心。根據發展階段的不同,我在此給大家分享一些每個數據科學家都應該做的新年計劃。
  • 成為一名數據科學家的學習三部曲
    如果你看到這篇文章的題目開始閱讀本文,那麼一定是數據科學激起了你的興趣。你肯定希望2016年成為你的轉運年,對不對?如果你從今天起堅持去執行這些新年計劃,轉運的可能性就會更大。要知道,成為一名數據科學家不能一蹴而就,需要的是一個過程。因此,朝目標邁進的過程中一定要充滿耐心。根據發展階段的不同,我在此給大家分享一些每個數據科學家都應該做的新年計劃。
  • 如何成為一名合格的數據分析師,數據分析師需要哪些技能?
    當然還有部分即將就業、剛入行久、轉行加入數據分析領域的群體,對如何成為一名合格的數據分析師,數據分析師需要哪些技能還存在諸多疑惑,那麼今天們就一起探討一下。1、 理論基礎篇作為一名合格的數據分析師,你需要有應用數學、統計學、數量經濟學專業數學知識背景。
  • 如何成為一名數據科學家?
    其他的知識(比如隨機森林,pandas,A/B測試)隨著你的工作開展和學習會慢慢接觸到,這些都不是基本的問題。如果你還是學生,一定要學好計算科學和統計學,選課的時候要記得選線性幾何、矩陣、計算科學、概率論等相關的課程。
  • 語言學博士、Kaggle數據分析師:這4項數據科學技能,讀研學不到
    >首先要說明一點:想成為一名數據科學家,並不意味著你必須擁有一個研究生學位。但隨著項目深入,你會發現你需要鑽研某一特定領域,且會越來越細分。最終你會成為最了解這一細分領域的人。這很好,學術研究就是會讓你成為這樣的又「精」又「專」的人。然而數據科學家卻不是這樣開展工作的。
  • 2021年數據科學家求職必須掌握的五大新概念
    數據科學家是當前全球商業環境中令人夢寐以求的工作,成為一名數據科學家需要付出很多努力
  • mybatis使用註解編寫動態sql注意事項
    在spring+springmvc+mybatis框架中開發,編寫sql語句以前都是直接使用xml的方式編寫,現在由於新的項目框架搭建過程中,同事配置的是使用註解的方式編寫sql語句,因此我也開始學習使用註解編寫sql語句。
  • 大數據分析工程師入門9-Spark SQL
    早期Spark的切入點是SparkContext,通過它來創建和操作數據集,對於不同的API需要不同的context。比如:使用sql-需要sqlContext,使用hive-需要hiveContext,使用streaming-需要StreamingContext。
  • spark結構化數據處理:Spark SQL、DataFrame和Dataset
    我們在使用API時,應該優先選擇DataFrame & Dataset,因為它的性能很好,而且以後的優化它都可以享受到,但是為了兼容早期版本的程序,RDD API也會一直保留著。後續Spark上層的庫將全部會用 DataFrame & Dataset,比如MLlib、Streaming、Graphx等。
  • HiveSql基礎函數使用(三)
    ③group by 必須在查詢結果中包含一個聚集函數,而distinct不用。假設訂單表數據如下:對於sql查詢結果:select distinct order_id,amount from dw.topic_order 對於sql查詢結果:select order_id
  • 鞏固SQL - 窗口函數&變量&數據透視圖
    但作為合格的一個數據分析師,sql的精通肯定是必不可少的,所以最近瘋狂刷sql題,同時也來總結下我以前比較少用的語法。2、窗口函數做數據處理的核心思想是建立「 輔助列「去幫助我們做篩選,比較。3、對我而言,掌握了窗口函數,感覺再也不怕寫SQL了(很可能是錯覺)二、變量1、變量的一些概念:2、變量的申明與賦值2.1、變量的申明;sql server中變量要先申明後才能賦值。mysql中變量不用事前申明,在用的時候直接賦值。
  • 數據科學家成長指南:從入門到被逼瘋
    可是你確定想好要成為一名數據科學家了嗎?你知道成為一名DS,需要具備什麼技能嗎?那就請準備好,下面我們要開車了! 你可能已經從媒體鋪天蓋地的報導中,了解到數據科學家這個抬頭非常火。根據UiPath數據顯示,2018年12113個崗位爭奪AI人才,數據科學家需求量排名第二。
  • 自學轉型成為數據科學家必須明白的10件事
    數據科學家的學習成長路徑是怎樣的?要學習數據科學,我需要學習哪些課程?這是大多數想轉型成為數據科學家的自學者最關心的三個問題。專注於您自己的數據科學之旅,受挫折或者有拖延都是可以接受,但不要讓這些障礙阻止您實現目標,遲到總比不到好。制定自己要學習和要做的事情清單。找出您尚不了解的數據科學概念和技能,並記下您想知道的內容。然後,從這個數據科學概念/技能列表中,專注於每天僅學習一件事。在1年的時間裡,您會驚訝於您學到了多少新概念和新技能。
  • 如何拿下SQL面試?這些技巧和陷阱必須要知道……
    全文共3006字,預計學習時長13分鐘SQL是數據分析和處理最基本的程式語言之一,因此,無論是面試數據分析師、數據科學家、數據工程師,還是其他相關工作,都免不了要過這一關。面試者應該讓面試官仔細闡述「前三名」的概念——結果中必須只有三名職員嗎?對於並列的處理有何要求?此外,面試者應仔細查看示例職員的數據——薪資欄位的數據類型是什麼?需要在計算之前清除數據嗎?何種連接在SQL中,連接經常用於組合來自多個表的信息。
  • 數據科學家易犯的十大編碼錯誤,你中招了嗎?
    數據科學家比軟體工程師擅長統計,又比統計學家擅長軟體工程。聽起來牛逼轟轟,事實卻是,許多數據科學家有統計學背景,卻沒有什麼軟體工程方面的經驗,因此在編碼時容易犯一些簡單的錯誤。作為一名高級數據科學家,本文作者總結了他在工作中常見數據科學家犯的十大錯誤。
  • |sql|mysql|數據源|java|...
    雙層  作用:此架構中,Java Applet 或應用直接訪問數據源。  條件:要求 Driver 能與訪問的資料庫交互。  機制:用戶命令傳給資料庫或其他數據源,隨之結果被返回。  部署:數據源可以在另一臺機器上,用戶通過網絡連接,稱為 C/S配置(可以是內聯網或網際網路)。
  • 你想成為數據科學家嗎?不要把機器學習當成入門第一課
    所以當我尋找學習數據科學的切入點時,也受其影響。這是我犯過的最大錯誤,也是本文重點:如果想要成為一名數據科學家,請不要從機器學習開始。顯然,要成為一名「真正全能」的數據科學家,最終必須掌握機器學習的概念。但你會驚訝於沒有它你能走多遠。為什麼不從機器學習開始呢?
  • 像寫SQL一樣編寫Java數據應用
    究其根本原因是要如何解決資料庫開發中的SQL與Java代碼之間的割裂問題,如果能把這個問題解決掉,理論上會有一個不錯的解。我們知道SQL實際是是一種數據為領域的DSL語言,如果我們能直接在Java中編寫SQL,然後執行結果就可以直接返回Java對象,這個問題不就有了良好的解決方案麼?