首页
/
每日頭條
/
科技
/
用sql還是pandas處理數據
用sql還是pandas處理數據
更新时间:2024-05-05 20:31:01

用sql還是pandas處理數據(九道門如何使用Pandas對數據執行SQL查詢)1

SQL 和 pandas 是兩種不同的工具,但它們都在處理數據時扮演着重要角色。SQL 和 Pandas 不僅是處理任何與數據相關工作的基本工具,而且即使是新手用戶也非常易于使用和實現。SQL 在數據庫環境中工作,因此也需要了解數據庫,而 Pandas 可以在電腦或基于浏覽器的編輯器等簡單的環境中快速使用,從簡單的 CSV 文件開始。在本文中,我将分享一系列可以對數據執行的操作列表,并比較如何使用 SQL 和 Pandas 完成相同的任務。

關于 SQL 和 Pandas

讓我們簡單了解一下 SQL 和 Pandas。

SQL: 一種編程語言,更确切地說,它是一種可用于執行數據庫操作的查詢語言。可用于存儲、查詢、更新和修改數據。SQL 是大多數 RDBMS 實際使用的語言。

Pandas:實際上 Pandas 是 Python 語言的一個庫,它可以幫助我們進行許多使用數據的操作。Pandas 使用的數據類型主要是表格。它也可以用于數據倉庫, 使用 Pandas 我們可以在移入或移出數據時檢查數據。

通過上述幾點可知,Pandas 是 Python 中的一個庫或工具包,而 SQL 本身就是一種查詢語言。

在什麼情況下使用 SQL 和 Pandas ?

SQL 和 Pandas 可以在各種應用程序中使用。讓我們來看看它們的主要用法。

SQL:我們可以把 SQL 作為數據處理的首選,我們可以使用它來管理幾種類型的關系數據庫,查詢數據倉庫或分布式數據庫。雖然我們也可以使用SQL進行數據分析,而且它是一種高性能語言,具有高維數據。

Pandas:我們可以把 Pandas 看作是數據的最後一個存放點,以便我們轉換數據。對于複雜的數據轉換和 EDA,Pandas 是一個更好的地方。大多時候,我們使用 Pandas 來處理數據幀格式的數據,這是一種整潔的數據形式。

通過上述幾點,我們可以說,在數據分析的過程中我們可以使用 SQL 分析數據并從中導入所需的功能,然後使用 Pandas 更深入地分析數據并對其進行處理以進行機器學習建模。

說到業務邏輯,使用 SQL 的一個基本優勢是我們可以将數據分發給每個人。SQL 可以在各種情況下提供幫助,例如将數據導入 Python、在 Tableau 中構建儀表闆、顯示 Web 報告等,并确保流程的性能更高。使用 Pandas 進行數據操作的優點包括我們可以将數據存儲到一台計算機中,與重複查詢數據庫相比,I / O成本和延遲更低,并且能夠在每個數據段中應用任意功能。

數據操作的比較

許多數據分析從業者必須定期使用 SQL 和 Pandas 來完成各種與數據相關的任務。因此,本文的這一部分将了解如何使用 SQL 語言和 Pandas 庫執行不同的操作。為了解釋這個過程,我們将使用泰坦尼克号數據集。

import Pandas as pd path = 'https://web.stanford.edu/class/archive/cs/cs109/cs109.1166/stuff/' data = pd.read_csv(path "titanic.csv") data.head()

輸出:

用sql還是pandas處理數據(九道門如何使用Pandas對數據執行SQL查詢)2

從輸出中我們可以看到不同列的名稱。現在開始我們的第一個操作。

select

該操作用于從給定數據中獲取所需的信息。使用SQL語言,我們可以通過以下方式使用一些變量執行這一操作:

SELECT Survived, Pclass, Name FROM data LIMIT 5;

說到 Pandas 庫,我們可以通過以下方式來選擇變量:

data[['Survived', 'Pclass', 'Name']].head()

輸出:

用sql還是pandas處理數據(九道門如何使用Pandas對數據執行SQL查詢)3

where

這是一個條件操作,我們主要使用它來從符合某些條件的數據中查找數據值。使用SQL,我們可以通過以下方式找到性别變量為男性的數據點:

SELECT * FROM data WHERE Sex = 'male' LIMIT 5

可以通過以下方式使用 pandas 執行相同的操作:

data[data['Sex'] == 'male'].head()

輸出:

用sql還是pandas處理數據(九道門如何使用Pandas對數據執行SQL查詢)4

請注意,我們在 SQL 中使用 * (星号) 來顯示數據中的所有列。

OR 和 AND

這是将兩個條件合并為一個條件的條件操作。使用 SQL 語言,我們可以通過以下方式找到變量性别為男性且年齡大于5歲的值:

SELECT * FROM data WHERE Sex = 'Male' AND Age > 5.00;

我們可以通過以下方式使用 Pandas 來執行相同的操作:

data[(data['Sex'] == 'male') & (data['Age'] > 5.00)]

輸出:

用sql還是pandas處理數據(九道門如何使用Pandas對數據執行SQL查詢)5

Group by

使用某些類别對數據值進行分組。有了這些數據,我們可以将男性和女性分組。在SQL中,可以通過以下方式實現:

SELECT Sex, count(*) FROM data GROUP BY Sex;

注意:此查詢将提供每個性别的記錄數。

可通過以下方式使用 pandas 執行相同的程序:

data.groupby('Sex').size()

輸出:

用sql還是pandas處理數據(九道門如何使用Pandas對數據執行SQL查詢)6

Join

連接操作是使用 SQL 最常用的操作,因為它主要幫助使用兩個或多個數據生成新數據。可以通過以下幾種方式連接數據:

• Inner join

此連接提供了加入的變量的公共值,使用 SQL 通過以下方式執行此操作:

SELECT * FROM df1 INNER JOIN df2 ON df1.key = df2.key;

這裡有兩個數據幀(df1 和 df2)和一個公共變量(key)。要執行此操作,我們需要有兩個或多個數據集。可以通過以下方式使用 Pandas 制作數據幀:

import numpy as np df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': np.random.randn(4)}) df2 = pd.DataFrame({'key': ['B', 'D', 'D', 'E'], 'value': np.random.randn(4)})

現在,我們可以通過以下方式對數據集進行内連接:

pd.merge(df1, df2, on='key')

用sql還是pandas處理數據(九道門如何使用Pandas對數據執行SQL查詢)7

• Left outer join

此操作有助于我們使用子句連接數據集。借助此功能,我們可以保留左側數據中不匹配的行,并以右表的形式将它們與空行連接起來。在SQL中,可以通過以下方式執行此操作:

SELECT * FROM df1 LEFT OUTER JOIN df2 ON df1.key = df2.key;

可以通過以下方式使用 pandas 執行相同的操作:

pd.merge(df1, df2, on='key', how='left')

輸出:

用sql還是pandas處理數據(九道門如何使用Pandas對數據執行SQL查詢)8

• Right outer join

我們使用該子句保留右側數據中的行,并在第一個(左)表的形狀中使用 null 連接它們。我們可以通過以下方式使用 SQL 執行此操作:

SELECT * FROM df1 RIGHT OUTER JOIN df2 ON df1.key = df2.key;

通過以下方式使用 pandas 執行相同操作:

pd.merge(df1, df2, on='key', how='right')

輸出:

用sql還是pandas處理數據(九道門如何使用Pandas對數據執行SQL查詢)9

• Full join

此操作在連接數據時保留每個數據的所有行。此操作可以通過以下方式使用 SQL 執行:

SELECT * FROM df1 FULL OUTER JOIN df2 ON df1.key = df2.key;

可以使用 pandas 通過以下方式執行相同的操作:

pd.merge(df1, df2, on='key', how='outer')

輸出:

用sql還是pandas處理數據(九道門如何使用Pandas對數據執行SQL查詢)10

在上面的内容中,我們看到了一些可以使用 Pandas 庫和 SQL 語言執行的重要操作。可以說将 Pandas 轉換為 SQL 或将 Pandas 轉換為 SQL 并不是一項艱巨的任務。我們可以配合着使用它們,用 SQL 來處理數據庫中的數據,用 Pandas 來處理維數較低的數據。數據分析優質社群,等你加入哦~

用sql還是pandas處理數據(九道門如何使用Pandas對數據執行SQL查詢)11

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
win7去除桌面圖标陰影
win7去除桌面圖标陰影
第一步:桌面上右鍵點擊“計算機”圖标,選擇裡面的“屬性”選項,找到高級系統設置第二步:選擇設置第三步:選擇自定義,,直接選擇裡面的“視覺效果”欄,在所有的效果裡面找到“在桌面上為圖标标簽使用陰影”選項,将其前面的“√”去了,最後直接單擊“确...
2024-05-05
數據庫的備份與恢複操作步驟
數據庫的備份與恢複操作步驟
概述sqlserver作為微軟公司重要的數據庫産品,在一些中小企業中得到廣泛應用。數據庫作為企業承載數據應用的重要載體,已成為企業的核心資産。如何數據庫損壞且沒有可用的備份恢複,如何快速解決?今天就介紹一款工具,助你快速恢複數據庫。SQLD...
2024-05-05
國産手機屏幕供應商
國産手機屏幕供應商
昨天給大家整理了一份關于2022年上半年國内智能手機側邊指紋/屏下指紋的搭載量數據,今天來看看2022上半年全球智能手機顯示面闆市場的數據。據市場研究機構StrategyAnalytics數據顯示:2022上半年,全球智能手機顯示面闆市場營...
2024-05-05
在火山小畫什麼畫受歡迎
在火山小畫什麼畫受歡迎
細沙無處不在,但精心雕琢的沙畫,卻能傳達出創作者的思想與藝術内涵。現在的火山小視頻達人鵬哥,也是希望有更多人了解沙畫,看到沙畫的價值,看到這門藝術的可貴。“活靈活現,太逼真了”、“沙畫界的奇才,立體感好強,為你點贊”……家住甘肅臨夏的沙畫達...
2024-05-05
油鋸有時加不上油是怎麼回事
油鋸有時加不上油是怎麼回事
油鋸在使用過程中可能會有這樣那樣的問題但是遇到這些問題的時候該怎麼解決呢?當遇到油鋸加不上油或者油鋸耗油多時,你都注意是該如何調整了嗎?還有油鋸插木齒是怎麼安裝的呢?今天主要給大家說說這幾個問題。一、油鋸加不上油怎麼辦?1、首先是檢查化油器...
2024-05-05
Copyright 2023-2024 - www.tftnews.com All Rights Reserved