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

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

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

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

常規(guī)用法

先創(chuàng)建一個 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() 來實現(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 后的代碼簡潔易懂,并且它對于內(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)建一個兩層索引的 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)有多層索引有名稱時,通過索引名稱直接選取。

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

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

>>> 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

特殊字符

對于列名中間有空格或運算符等其他特殊符號,需要使用反引號 ``。

>>> 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)雅的查詢實例的文章就介紹到這了,更多相關(guān)Pandas query()查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • Python time庫基本使用方法分析

    Python time庫基本使用方法分析

    這篇文章主要介紹了Python time庫基本使用方法,結(jié)合實例形式分析了Python time模塊基本功能、控制符、使用方法與操作注意事項,需要的朋友可以參考下
    2019-12-12
  • 利用Python?Matlab繪制曲線圖的簡單實例

    利用Python?Matlab繪制曲線圖的簡單實例

    們經(jīng)常會遇到這種情況,有一個數(shù)學(xué)函數(shù),我們希望了解他的圖像,這個時候使用python 的matplotlib就可以幫助我們,下面這篇文章主要介紹了利用Python?Matlab繪制曲線圖的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • python pandas庫的安裝和創(chuàng)建

    python pandas庫的安裝和創(chuàng)建

    這篇文章主要介紹了python pandas庫的安裝和創(chuàng)建,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Pycharm?debug程序,跳轉(zhuǎn)至指定循環(huán)條件/循環(huán)次數(shù)問題

    Pycharm?debug程序,跳轉(zhuǎn)至指定循環(huán)條件/循環(huán)次數(shù)問題

    這篇文章主要介紹了Pycharm?debug程序,跳轉(zhuǎn)至指定循環(huán)條件/循環(huán)次數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python XML RPC服務(wù)器端和客戶端實例

    Python XML RPC服務(wù)器端和客戶端實例

    這篇文章主要介紹了Python XML RPC服務(wù)器端和客戶端實例,本文給出了實現(xiàn)代碼以及運行效果,需要的朋友可以參考下
    2014-11-11
  • python對excel文檔去重及求和的實例

    python對excel文檔去重及求和的實例

    下面小編就為大家分享一篇python對excel文檔去重及求和的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 基于Python實現(xiàn)報表自動化并發(fā)送到郵箱

    基于Python實現(xiàn)報表自動化并發(fā)送到郵箱

    作為數(shù)據(jù)分析師,我們需要經(jīng)常制作統(tǒng)計分析圖表。但是報表太多的時候往往需要花費我們大部分時間去制作報表。本文將利用Python實現(xiàn)報表自動化并發(fā)送到郵箱,需要的可以參考一下
    2022-07-07
  • Python下載手機小視頻的操作方法

    Python下載手機小視頻的操作方法

    這篇文章主要介紹了Python 下載手機小視頻,主要為大家介紹使用 mitmproxy 這個抓包工具如何監(jiān)控手機上網(wǎng),并且通過抓包,把我們想要的數(shù)據(jù)下載下來,需要的朋友可以參考下
    2022-04-04
  • Python QT組件庫qtwidgets的使用

    Python QT組件庫qtwidgets的使用

    這篇文章主要介紹了Python QT組件庫qtwidgets的使用,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下
    2020-11-11
  • django 解決model中類寫不到數(shù)據(jù)庫中,數(shù)據(jù)庫無此字段的問題

    django 解決model中類寫不到數(shù)據(jù)庫中,數(shù)據(jù)庫無此字段的問題

    這篇文章主要介紹了django 解決model中類寫不到數(shù)據(jù)庫中,數(shù)據(jù)庫無此字段的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨想過來看看吧
    2020-05-05

最新評論