最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pandas使用query()優(yōu)雅的查詢實(shí)例

 更新時(shí)間:2022年01月24日 16:44:38   作者:Dream丶Killer  
本文主要介紹了Pandas使用query()優(yōu)雅的查詢實(shí)例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

對(duì)于 Pandas 根據(jù)條件獲取指定數(shù)據(jù),相信大家都能夠輕松的寫出相應(yīng)代碼,但是如果你還沒用過 query,相信你會(huì)被它的簡潔所折服!

常規(guī)用法

先創(chuàng)建一個(gè) DataFrame。

import pandas as pd

df = pd.DataFrame(
? ? {'A': ['e', 'd', 'c', 'b', 'a'],
? ? ?'B': ['f', 'b', 'c', 'd', 'e'],
? ? ?'C': range(0, 10, 2),
? ? ?'D': range(10, 0, -2),
? ? ?'E.E': range(10, 5, -1)})

我們現(xiàn)在選取 A列字母出現(xiàn)在B列 的所有行。先看兩種常見寫法。

>>> df[df['A'].isin(df['B'])]
? ?A ?B ?C ? D ?E.E
0 ?e ?f ?0 ?10 ? 10
1 ?d ?b ?2 ? 8 ? ?9
2 ?c ?c ?4 ? 6 ? ?8
3 ?b ?d ?6 ? 4 ? ?7
>>> df.loc[df['A'].isin(df['B'])]
? ?A ?B ?C ? D ?E.E
0 ?e ?f ?0 ?10 ? 10
1 ?d ?b ?2 ? 8 ? ?9
2 ?c ?c ?4 ? 6 ? ?8
3 ?b ?d ?6 ? 4 ? ?7

下面使用 query() 來實(shí)現(xiàn)。

>>> df.query("A in B")
? ?A ?B ?C ? D ?E.E
0 ?e ?f ?0 ?10 ? 10
1 ?d ?b ?2 ? 8 ? ?9
2 ?c ?c ?4 ? 6 ? ?8
3 ?b ?d ?6 ? 4 ? ?7

可以看到使用 query 后的代碼簡潔易懂,并且它對(duì)于內(nèi)存的消耗也更小。

多條件查詢

選取 A列字母出現(xiàn)在B列,并且C列小于D列 的所有行。

>>> df.query('A in B and C < D')
? ?A ?B ?C ? D ?E.E
0 ?e ?f ?0 ?10 ? 10
1 ?d ?b ?2 ? 8 ? ?9
2 ?c ?c ?4 ? 6 ? ?8

這里 and 也可以用 & 表示。

引用變量

表達(dá)式中也可以使用外部定義的變量,在變量名前用@標(biāo)明。

>>> number = 5
>>> df.query('A in B & C > @number')
? ?A ?B ?C ?D ?E.E
3 ?b ?d ?6 ?4 ? ?7

索引選取

選取 A列字母出現(xiàn)在B列,并且索引大于2 的所有行。

>>> df.query('A in B and index > 2')
? ?A ?B ?C ?D ?E.E
3 ?b ?d ?6 ?4 ? ?7

多索引選取

創(chuàng)建一個(gè)兩層索引的 DataFrame。

>>> import numpy as np
>>> colors = ['yellow']*3 + ['red']*2
>>> rank = [str(i) for i in range(5)]
>>> index = pd.MultiIndex.from_arrays([colors, rank], names=['color', 'rank'])
>>> df = pd.DataFrame(np.arange(10).reshape(5, 2),columns=['A', 'B'] , index=index)
>>> df = pd.DataFrame(np.arange(10).reshape(5, 2),columns=['A', 'B'] , index=index)
>>> df
? ? ? ? ? ? ?A ?B
color ?rank ? ? ?
yellow 0 ? ? 0 ?1
? ? ? ?1 ? ? 2 ?3
? ? ? ?2 ? ? 4 ?5
red ? ?3 ? ? 6 ?7
? ? ? ?4 ? ? 8 ?9

1.當(dāng)有多層索引有名稱時(shí),通過索引名稱直接選取。

>>> df.query("color == 'red'")
? ? ? ? ? ? A ?B
color rank ? ? ?
red ? 3 ? ? 6 ?7
? ? ? 4 ? ? 8 ?9

2.當(dāng)有多層索引無名時(shí),通過索引級(jí)別來選取。

>>> df.index.names = [None, None]
>>> df.query("ilevel_0 == 'red'")
? ? ? ?A ?B
red 3 ?6 ?7
? ? 4 ?8 ?9
>>> df.query("ilevel_1 == '4'")
? ? ? ?A ?B
red 4 ?8 ?9

特殊字符

對(duì)于列名中間有空格或運(yùn)算符等其他特殊符號(hào),需要使用反引號(hào) ``。

>>> df.query('A == B | (C + 2 > `E.E`)')
? ?A ?B ?C ?D ?E.E
2 ?c ?c ?4 ?6 ? ?8
3 ?b ?d ?6 ?4 ? ?7
4 ?a ?e ?8 ?2 ? ?6

總的來說,query() 用法比較簡單,可以快速上手,代碼可讀性也提高了不少。

到此這篇關(guān)于Pandas使用query()優(yōu)雅的查詢實(shí)例的文章就介紹到這了,更多相關(guān)Pandas query()查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • python 實(shí)現(xiàn)的IP 存活掃描腳本

    python 實(shí)現(xiàn)的IP 存活掃描腳本

    這篇文章主要介紹了python 實(shí)現(xiàn)的IP 存活掃描腳本,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • Pygame實(shí)戰(zhàn)之實(shí)現(xiàn)扎氣球游戲

    Pygame實(shí)戰(zhàn)之實(shí)現(xiàn)扎氣球游戲

    這篇文章主要為大家介紹了利用Python中的Pygame模塊實(shí)現(xiàn)的一個(gè)扎氣球游戲,文中的示例代碼講解詳細(xì),對(duì)我們了解Pygame模塊有一定的幫助,感興趣的可以學(xué)習(xí)一下
    2021-12-12
  • Python logging日志庫空間不足問題解決

    Python logging日志庫空間不足問題解決

    這篇文章主要介紹了Python logging日志庫空間不足問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 深度剖析使用python抓取網(wǎng)頁正文的源碼

    深度剖析使用python抓取網(wǎng)頁正文的源碼

    平時(shí)打開一個(gè)網(wǎng)頁,除了文章的正文內(nèi)容,通常會(huì)有一大堆的導(dǎo)航,廣告和其他方面的信息。本文的目的,在于說明如何從一個(gè)網(wǎng)頁中提取出文章的正文內(nèi)容,而過渡掉其他無關(guān)的的信息。
    2014-06-06
  • Python判斷telnet通不通的實(shí)例

    Python判斷telnet通不通的實(shí)例

    今天小編就為大家分享一篇Python判斷telnet通不通的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python基礎(chǔ)類繼承重寫實(shí)現(xiàn)原理解析

    Python基礎(chǔ)類繼承重寫實(shí)現(xiàn)原理解析

    這篇文章主要介紹了Python基礎(chǔ)類繼承重寫實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python實(shí)現(xiàn)桶排序與快速排序算法結(jié)合應(yīng)用示例

    Python實(shí)現(xiàn)桶排序與快速排序算法結(jié)合應(yīng)用示例

    這篇文章主要介紹了Python實(shí)現(xiàn)桶排序與快速排序算法結(jié)合應(yīng)用,結(jié)合實(shí)例形式分析了Python快速排序及桶排序結(jié)合應(yīng)用的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-11-11
  • Python嵌入C/C++進(jìn)行開發(fā)詳解

    Python嵌入C/C++進(jìn)行開發(fā)詳解

    在本篇文章里小編給大家分享了關(guān)于Python嵌入C/C++進(jìn)行開發(fā)的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們可以參考下。
    2020-06-06
  • 使用python生成定制化詞云的代碼示例

    使用python生成定制化詞云的代碼示例

    詞云,作為一種流行的數(shù)據(jù)可視化形式,能夠?qū)⒋罅课谋緮?shù)據(jù)中的關(guān)鍵詞以視覺化的方式呈現(xiàn),讓我們迅速捕捉到文本的核心,本文將通過Python編程語言,使用jieba和wordcloud庫,生成一個(gè)具有特定形狀的詞云,需要的朋友可以參考下
    2024-09-09
  • Python腳本操作Excel實(shí)現(xiàn)批量替換功能

    Python腳本操作Excel實(shí)現(xiàn)批量替換功能

    這篇文章主要介紹了Python腳本操作Excel實(shí)現(xiàn)批量替換功能,本文使用的是Openpyxl工具,通過實(shí)例截圖給大家講解的非常詳細(xì),需要的朋友可以參考下
    2019-11-11

最新評(píng)論

江门市| 海兴县| 林口县| 肃北| 岱山县| 泸溪县| 师宗县| 荣昌县| 南汇区| 视频| 吴川市| 本溪| 肥城市| 灵寿县| 义马市| 尼勒克县| 宜兰市| 鄱阳县| 两当县| 临江市| 什邡市| 阜新市| 嫩江县| 秦皇岛市| 陆河县| 资源县| 吉木乃县| 赤水市| 临潭县| 紫金县| 永和县| 措美县| 鹤壁市| 临邑县| 公安县| 郎溪县| 上犹县| 象山县| 北京市| 建水县| 凯里市|