全文共1852字,預計學習時長5分鐘
一間屋子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的查詢方式,但在個人的數據框架中。
個人認為,計算全新的欄位或指標更容易,這些欄位或指標最終將用於個人pandas數據科學模型。不過,有人偏愛只在SQL中執行計算。對我來說,使用SQL的好處是我不必一次性添加所有新特性(查詢時間過長),這樣當我想添加一個新特性時,操作就非常簡單有效。
數據科學家需要了解SQL嗎?答案不是絕對的。這取決於公司、團隊,有時還取決於個人偏好。
使用SQL查詢,可以使用戶受益匪淺,所以如果你還不了解SQL,可以學習其使用方法。如果你偏愛類似pandas的替代方法,你可能是龐大數據科學團隊中的一員。
一些數據科學家同時使用SQL和Python來為模型創建最終的數據集。pandas最獨特的地方在於它有一個類似於SQL的查詢操作,用戶可以在pandas數據框中綜合使用SQL和Python。所以,想好你自己的解決方案了嗎?
留言點讚關注
我們一起分享AI學習與發展的乾貨
如轉載,請後臺留言,遵守轉載規範