欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pandas執(zhí)行SQL操作的實(shí)現(xiàn)

 更新時(shí)間:2024年07月26日 11:54:14   作者:qwy715229258163  
使用SQL語(yǔ)句能夠完成對(duì)table的增刪改查操作,Pandas同樣也可以實(shí)現(xiàn)SQL語(yǔ)句的基本功能,本文就來(lái)介紹一下,具有一檔的參考價(jià)值,感興趣的可以了解一下

我們知道,使用 SQL 語(yǔ)句能夠完成對(duì) table 的增刪改查操作,Pandas 同樣也可以實(shí)現(xiàn) SQL 語(yǔ)句的基本功能。本節(jié)主要講解 Pandas 如何執(zhí)行 SQL 操作。

首先加載一個(gè)某連鎖咖啡廳地址分布的數(shù)據(jù)集,通過(guò)該數(shù)據(jù)集對(duì)本節(jié)內(nèi)容進(jìn)行講解。

import pandas as pd
df = pd.read_excel("C:\\Users\\qwy\\Desktop\\data\\empdata.xlsx")
print(df)

輸出結(jié)果如下:

    EMPNO   ENAME        JOB     MGR    HIREDATE   SAL    COMM  DEPTNO
0    7369   SMITH      CLERK  7902.0  1980-12-17   800     NaN      20
1    7499   ALLEN   SALESMAN  7698.0  1981-02-20  1600   300.0      30
2    7521    WARD   SALESMAN  7698.0  1981-02-22  1250   500.0      30
3    7566   JONES    MANAGER  7839.0  1981-04-02  2975     NaN      20
4    7654  MARTIN   SALESMAN  7698.0  1981-09-28  1250  1400.0      30
5    7698   BLAKE    MANAGER  7839.0  1981-05-01  2850     NaN      30
6    7782   CLARK    MANAGER  7839.0  1981-06-09  2450     NaN      10
7    7788   SCOTT    ANALYST  7566.0  1987-04-19  3000     NaN      20
8    7839    KING  PRESIDENT     NaN  1981-11-17  5000     NaN      10
9    7844  TURNER   SALESMAN  7698.0  1981-09-08  1500     0.0      30
10   7876   ADAMS      CLERK  7788.0  1987-05-23  1100     NaN      20
11   7900   JAMES      CLERK  7698.0  1981-12-03   950     NaN      30
12   7902    FORD    ANALYST  7566.0  1981-12-03  3000     NaN      20
13   7934  MILLER      CLERK  7782.0  1982-01-23  1300     NaN      10

SELECT

在 SQL 中,SELECT 查詢語(yǔ)句使用,把要查詢的每個(gè)字段分開(kāi),當(dāng)然您也可以使用*來(lái)選擇所有的字段。如下所示:

SELECT EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO FROM emp LIMIT 5;

對(duì)于 Pandas 而言,要完成 SELECT 查詢,需要把數(shù)據(jù)集每一列(columns)的名稱傳遞給 DataFrame 對(duì)象。如下所示:

df[['EMPNO','ENAME','JOB','MGR','HIREDATE','SAL','COMM' , 'DEPTNO']].head(5)

下面代碼是 Pandas 執(zhí)行 SELECT 查詢的完整程序:

import pandas as pd
df = pd.read_excel("C:\\Users\\qwy\\Desktop\\data\\empdata.xlsx")
emp = df[['EMPNO','ENAME','JOB','MGR','HIREDATE','SAL','COMM' , 'DEPTNO']].head(5)
print(emp)

輸出結(jié)果如下:

   EMPNO   ENAME       JOB     MGR    HIREDATE   SAL    COMM  DEPTNO
0   7369   SMITH     CLERK  7902.0  1980-12-17   800     NaN      20
1   7499   ALLEN  SALESMAN  7698.0  1981-02-20  1600   300.0      30
2   7521    WARD  SALESMAN  7698.0  1981-02-22  1250   500.0      30
3   7566   JONES   MANAGER  7839.0  1981-04-02  2975     NaN      20
4   7654  MARTIN  SALESMAN  7698.0  1981-09-28  1250  1400.0      30

假如您傳入的是一個(gè)空列表, 那最終結(jié)果將輸出所有的行索引標(biāo)簽。

WHERE

SQL 中的條件查詢是通過(guò) WHERE 子句完成的。格式如下所示:

SELECT * FROM EMP WHERE DEPTNO = '30';

然而 DataFrame 可以通過(guò)多種方式實(shí)現(xiàn)條件篩選,最直觀的方法是通過(guò)布爾索引:

df[df['DEPTNO'] == 30]

完整程序如下:

import pandas as pd
df = pd.read_excel("C:\\Users\\qwy\\Desktop\\data\\empdata.xlsx")
emp = df[df['DEPTNO'] == 30]
print(emp)

輸出結(jié)果如下:

    EMPNO   ENAME       JOB     MGR    HIREDATE   SAL    COMM  DEPTNO
1    7499   ALLEN  SALESMAN  7698.0  1981-02-20  1600   300.0      30
2    7521    WARD  SALESMAN  7698.0  1981-02-22  1250   500.0      30
4    7654  MARTIN  SALESMAN  7698.0  1981-09-28  1250  1400.0      30
5    7698   BLAKE   MANAGER  7839.0  1981-05-01  2850     NaN      30
9    7844  TURNER  SALESMAN  7698.0  1981-09-08  1500     0.0      30
11   7900   JAMES     CLERK  7698.0  1981-12-03   950     NaN      30

上面的語(yǔ)句通過(guò)布爾運(yùn)算將 True 或 False 對(duì)象傳遞給 DataFrame 對(duì)象,然后返回所有為 True 的行。

GroupBy

在 SQL 語(yǔ)句中,通過(guò) GroupBy 操作可以獲取 table 中一組記錄的計(jì)數(shù)。示例如下:

SELECT id, count(*) FROM EMP GROUP BY DEPTNO;

而 Pandas 可通過(guò)以下代碼實(shí)現(xiàn):

df.groupby('DEPTNO').size()

完整的程序如下所示:

import pandas as pd
import numpy as np
df = pd.read_excel("C:\\Users\\qwy\\Desktop\\data\\empdata.xlsx")
emp_count = df.groupby('DEPTNO').size()
# 或者使用agg或aggregate函數(shù)
# emp_count = df.groupby('DEPTNO').aggregate({'EMPNO':np.size,'SAL':np.mean})
print(emp_count)

輸出結(jié)果:

DEPTNO
10    3
20    5
30    6
dtype: int64

LIMIT

在 SQL 中,LIMIT 語(yǔ)句主要起到限制作用,比如查詢前 n 行記錄:

SELECT * FROM EMP LIMIT n;

而在 Pandas 中,您可以通過(guò) head() 來(lái)實(shí)現(xiàn)(默認(rèn)前 5 行),示例如下:

import pandas as pd
df = pd.read_excel("C:\\Users\\qwy\\Desktop\\data\\empdata.xlsx")
emp = df[['EMPNO','ENAME','JOB','MGR','HIREDATE','SAL','COMM' , 'DEPTNO']].head(5)
print(emp)

輸出結(jié)果:

   EMPNO   ENAME       JOB     MGR    HIREDATE   SAL    COMM  DEPTNO
0   7369   SMITH     CLERK  7902.0  1980-12-17   800     NaN      20
1   7499   ALLEN  SALESMAN  7698.0  1981-02-20  1600   300.0      30
2   7521    WARD  SALESMAN  7698.0  1981-02-22  1250   500.0      30
3   7566   JONES   MANAGER  7839.0  1981-04-02  2975     NaN      20
4   7654  MARTIN  SALESMAN  7698.0  1981-09-28  1250  1400.0      30

到此這篇關(guān)于Pandas執(zhí)行SQL操作的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Pandas執(zhí)行SQL操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PyTorch使用GPU訓(xùn)練的兩種方法實(shí)例

    PyTorch使用GPU訓(xùn)練的兩種方法實(shí)例

    pytorch是一個(gè)非常優(yōu)秀的深度學(xué)習(xí)的框架,具有速度快,代碼簡(jiǎn)潔,可讀性強(qiáng)的優(yōu)點(diǎn),下面這篇文章主要給大家介紹了關(guān)于PyTorch使用GPU訓(xùn)練的兩種方法,需要的朋友可以參考下
    2022-05-05
  • python中print的不換行即時(shí)輸出的快速解決方法

    python中print的不換行即時(shí)輸出的快速解決方法

    下面小編就為大家?guī)?lái)一篇python中print的不換行即時(shí)輸出的快速解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考
    2016-07-07
  • 一文總結(jié)學(xué)習(xí)Python的14張思維導(dǎo)圖

    一文總結(jié)學(xué)習(xí)Python的14張思維導(dǎo)圖

    一文總結(jié)學(xué)習(xí)Python的14張思維導(dǎo)圖,本文涵蓋了Python編程的核心知識(shí),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • OpenCV2從攝像頭獲取幀并寫(xiě)入視頻文件的方法

    OpenCV2從攝像頭獲取幀并寫(xiě)入視頻文件的方法

    今天小編就為大家分享一篇OpenCV2從攝像頭獲取幀并寫(xiě)入視頻文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • itchat-python搭建微信機(jī)器人(附示例)

    itchat-python搭建微信機(jī)器人(附示例)

    這篇文章主要介紹了itchat-python搭建微信機(jī)器人,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • python獲取一組數(shù)據(jù)里最大值max函數(shù)用法實(shí)例

    python獲取一組數(shù)據(jù)里最大值max函數(shù)用法實(shí)例

    這篇文章主要介紹了python獲取一組數(shù)據(jù)里最大值max函數(shù)用法,實(shí)例分析了max函數(shù)的使用技巧,需要的朋友可以參考下
    2015-05-05
  • Python正則表達(dá)式匹配和提取IP地址

    Python正則表達(dá)式匹配和提取IP地址

    這篇文章主要介紹了Python正則表達(dá)式匹配和提取IP地址的實(shí)例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • Python for循環(huán)通過(guò)序列索引迭代過(guò)程解析

    Python for循環(huán)通過(guò)序列索引迭代過(guò)程解析

    這篇文章主要介紹了Python for循環(huán)通過(guò)序列索引迭代過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python對(duì)PDF文檔和PPT文檔的操作詳解

    Python對(duì)PDF文檔和PPT文檔的操作詳解

    Python辦公?動(dòng)化是利?Python編程語(yǔ)?來(lái)創(chuàng)建腳本和程序,以簡(jiǎn)化、加速和?動(dòng)化?常辦公任務(wù)和?作流程的過(guò)程,它基于Python的強(qiáng)?功能和豐富的第三?庫(kù),使得能夠處理各種辦公任務(wù),本文給大家介紹了Python對(duì)PDF文檔和PPT文檔的操作,需要的朋友可以參考下
    2023-12-12
  • python使用paramiko執(zhí)行服務(wù)器腳本并拿到實(shí)時(shí)結(jié)果

    python使用paramiko執(zhí)行服務(wù)器腳本并拿到實(shí)時(shí)結(jié)果

    這篇文章主要介紹了python使用paramiko執(zhí)行服務(wù)器腳本并拿到實(shí)時(shí)結(jié)果,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評(píng)論