
- Python Pandas 教程
- Python Pandas - 首頁
- Python Pandas - 簡介
- Python Pandas - 環境設定
- Python Pandas - 基礎知識
- Python Pandas - 資料結構介紹
- Python Pandas - 索引物件
- Python Pandas - Panel
- Python Pandas - 基本功能
- Python Pandas - 索引和資料選擇
- Python Pandas - Series
- Python Pandas - Series
- Python Pandas - 切片Series物件
- Python Pandas - Series物件的屬性
- Python Pandas - Series物件的算術運算
- Python Pandas - 將Series轉換為其他物件
- Python Pandas - DataFrame
- Python Pandas - DataFrame
- Python Pandas - 訪問DataFrame
- Python Pandas - 切片DataFrame物件
- Python Pandas - 修改DataFrame
- Python Pandas - 從DataFrame中刪除行
- Python Pandas - DataFrame的算術運算
- Python Pandas - I/O工具
- Python Pandas - I/O工具
- Python Pandas - 使用CSV格式
- Python Pandas - 讀取和寫入JSON檔案
- Python Pandas - 從Excel檔案讀取資料
- Python Pandas - 將資料寫入Excel檔案
- Python Pandas - 使用HTML資料
- Python Pandas - 剪貼簿
- Python Pandas - 使用HDF5格式
- Python Pandas - 與SQL的比較
- Python Pandas - 資料處理
- Python Pandas - 排序
- Python Pandas - 重新索引
- Python Pandas - 迭代
- Python Pandas - 連線
- Python Pandas - 統計函式
- Python Pandas - 描述性統計
- Python Pandas - 使用文字資料
- Python Pandas - 函式應用
- Python Pandas - 選項和自定義
- Python Pandas - 視窗函式
- Python Pandas - 聚合
- Python Pandas - 合併/連線
- Python Pandas - 多級索引
- Python Pandas - 多級索引基礎
- Python Pandas - 使用多級索引進行索引
- Python Pandas - 使用多級索引進行高階重新索引
- Python Pandas - 重新命名多級索引標籤
- Python Pandas - 對多級索引進行排序
- Python Pandas - 二元運算
- Python Pandas - 二元比較運算
- Python Pandas - 布林索引
- Python Pandas - 布林掩碼
- Python Pandas - 資料重塑和透視
- Python Pandas - 透視
- Python Pandas - 堆疊和取消堆疊
- Python Pandas - 熔化
- Python Pandas - 計算虛擬變數
- Python Pandas - 類別資料
- Python Pandas - 類別資料
- Python Pandas - 類別資料的排序和分類
- Python Pandas - 比較類別資料
- Python Pandas - 處理缺失資料
- Python Pandas - 缺失資料
- Python Pandas - 填充缺失資料
- Python Pandas - 缺失值的插值
- Python Pandas - 刪除缺失資料
- Python Pandas - 使用缺失資料進行計算
- Python Pandas - 處理重複項
- Python Pandas - 重複資料
- Python Pandas - 計數和檢索唯一元素
- Python Pandas - 重複標籤
- Python Pandas - 分組和聚合
- Python Pandas - GroupBy
- Python Pandas - 時間序列資料
- Python Pandas - 日期功能
- Python Pandas - Timedelta
- Python Pandas - 稀疏資料結構
- Python Pandas - 稀疏資料
- Python Pandas - 視覺化
- Python Pandas - 視覺化
- Python Pandas - 附加概念
- Python Pandas - 警告和陷阱
- Python Pandas 有用資源
- Python Pandas - 快速指南
- Python Pandas - 有用資源
- Python Pandas - 討論
Python Pandas - 與SQL的比較
Pandas 是一個強大的 Python 庫,用於資料操作和分析,廣泛應用於資料科學和工程領域。許多潛在的 Pandas 使用者都來自 SQL 背景,SQL 是一種用於管理和查詢關係資料庫的語言。瞭解如何使用 Pandas 執行類似 SQL 的操作可以顯著簡化轉換過程並提高生產力。
本教程並排比較了常見的 SQL 操作及其在 Pandas 中的等效操作,使用流行的“tips”資料集。
匯入必要的庫
在深入比較之前,讓我們首先匯入必要的庫。
import pandas as pd import numpy as np
我們還將載入 "tips" 資料集,本教程將始終使用該資料集。
import pandas as pd url = 'https://raw.githubusercontent.com/pandas-dev/pandas/main/pandas/tests/io/data/csv/tips.csv' tips=pd.read_csv(url) print(tips.head())
其輸出如下:
total_bill tip sex smoker day time size 0 16.99 1.01 Female No Sun Dinner 2 1 10.34 1.66 Male No Sun Dinner 3 2 21.01 3.50 Male No Sun Dinner 3 3 23.68 3.31 Male No Sun Dinner 2 4 24.59 3.61 Female No Sun Dinner 4
選擇列
在 SQL 中,SELECT 語句用於從表中檢索特定列。選擇是使用您選擇的列的逗號分隔列表(或選擇所有列的 *)進行的:
SELECT total_bill, tip, smoker, time FROM tips LIMIT 5;
在 Pandas 中,您可以透過使用列名列表從 DataFrame 中選擇列來獲得相同的結果:
tips[['total_bill', 'tip', 'smoker', 'time']].head(5)
示例
讓我們檢查一下顯示所選列前五行的完整程式:
import pandas as pd url = 'https://raw.githubusercontent.com/pandas-dev/pandas/main/pandas/tests/io/data/csv/tips.csv' tips=pd.read_csv(url) print(tips[['total_bill', 'tip', 'smoker', 'time']].head(5))
其輸出如下:
total_bill tip smoker time 0 16.99 1.01 No Dinner 1 10.34 1.66 No Dinner 2 21.01 3.50 No Dinner 3 23.68 3.31 No Dinner 4 24.59 3.61 No Dinner
不使用列名列表呼叫 DataFrame 將顯示所有列(類似於 SQL 的 *)。
過濾行
在 SQL 中,WHERE 子句用於根據特定條件過濾記錄。
SELECT * FROM tips WHERE time = 'Dinner' LIMIT 5;
DataFrame 可以透過多種方式進行過濾;其中最直觀的是使用布林索引。
tips[tips['time'] == 'Dinner'].head(5)
示例
讓我們檢查一下顯示時間等於“Dinner”的前五條記錄的完整程式:
import pandas as pd url = 'https://raw.githubusercontent.com/pandas-dev/pandas/main/pandas/tests/io/data/csv/tips.csv' tips=pd.read_csv(url) print(tips[tips['time'] == 'Dinner'].head(5))
其輸出如下:
total_bill tip sex smoker day time size 0 16.99 1.01 Female No Sun Dinner 2 1 10.34 1.66 Male No Sun Dinner 3 2 21.01 3.50 Male No Sun Dinner 3 3 23.68 3.31 Male No Sun Dinner 2 4 24.59 3.61 Female No Sun Dinner 4
上面的語句將 True/False 物件的 Series 傳遞給 DataFrame,返回所有值為 True 的行。
分組資料
SQL 的GROUP BY 子句用於對指定列中具有相同值的行進行分組,並對它們執行聚合函式。例如,要計算每種性別留下的消費小費數量:
SELECT sex, count(*) FROM tips GROUP BY sex;
在 Pandas 中,groupby() 方法用於獲得相同的結果:
tips.groupby('sex').size()
示例
讓我們檢查一下顯示按性別分組的小費數量的完整程式:
import pandas as pd url = 'https://raw.githubusercontent.com/pandas-dev/pandas/main/pandas/tests/io/data/csv/tips.csv' tips=pd.read_csv(url) print(tips.groupby('sex').size())
其輸出如下:
sex Female 87 Male 157 dtype: int64
限制行數
在 SQL 中,LIMIT 子句用於限制查詢返回的行數。例如:
SELECT * FROM tips LIMIT 5 ;
在 Pandas 中,head() 方法用於實現此目的:
tips.head(5)
示例
讓我們檢查一下顯示 DataFrame 前五行的完整示例:
import pandas as pd url = 'https://raw.githubusercontent.com/pandas-dev/pandas/main/pandas/tests/io/data/csv/tips.csv' tips=pd.read_csv(url) tips = tips[['smoker', 'day', 'time']].head(5) print(tips)
其輸出如下:
smoker day time 0 No Sun Dinner 1 No Sun Dinner 2 No Sun Dinner 3 No Sun Dinner 4 No Sun Dinner
這些是我們之前章節中學習的 Pandas 庫中比較的一些基本操作。