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

pandas按條件篩選數(shù)據(jù)的實(shí)現(xiàn)

 更新時間:2021年02月20日 11:35:16   作者:Sun_Sherry  
這篇文章主要介紹了pandas按條件篩選數(shù)據(jù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

pandas中對DataFrame篩選數(shù)據(jù)的方法有很多的,以后會后續(xù)進(jìn)行補(bǔ)充,這里只整理遇到錯誤的情況。

1.使用布爾型DataFrame對數(shù)據(jù)進(jìn)行篩選

使用一個條件對數(shù)據(jù)進(jìn)行篩選,代碼類似如下:

num_red=flags[flags['red']==1]

使用多個條件對數(shù)據(jù)進(jìn)行篩選,代碼類似如下:

stripes_or_bars=flags[(flags['stripes']>=1) | (flags['bars']>=1)]

常見的錯誤代碼如下:

代碼一:

stripes_or_bars=flags[flags['stripes']>=1 or flags['bars']>=1]

代碼二:

stripes_or_bars=flags[flags['stripes']>=1 | flags['bars']>=1].

代碼三:

stripes_or_bars=flags[(flags['stripes']>=1) or (flags['bars']>=1)]

以上這三種代碼的錯誤提示都是:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 中括號里面的邏輯式如何解析的暫時不清楚。貌似不能使用and、or及not。

除了使用組合的邏輯表達(dá)式之外,使用返回類型為布爾型值的函數(shù)也可以達(dá)到篩選數(shù)據(jù)的效果。示例如下:

import pandas as pd
import numpy as np
df=pd.DataFrame(np.array(range(10)).reshape((5,-1)))
df.columns=['0','1']
df=df[df['1'].isin([3,5,9])]

 其df的結(jié)果如下:

2.iloc()方法、ix()方法和iloc()方法的區(qū)別

首先dataframe一般有兩種類型的索引:第一種是位置索引,即dataframe自帶的從0開始的索引,這種索引叫位置索引。另一種即標(biāo)簽索引,這種索引是你在創(chuàng)建datafram時通過index關(guān)鍵字,或者通過其他index相關(guān)方法重新給dataframe設(shè)置的索引。這兩種索引是同時存在的。一般設(shè)置了標(biāo)簽索引之后,就不在顯示位置索引,但不意味著位置索引就不存在了。

假設(shè)有如下幾行數(shù)據(jù)(截圖部分只是數(shù)據(jù)的一部分),很明顯,以下顯示的索引為標(biāo)簽索引。同時574(標(biāo)簽索引)行對應(yīng)的位置索引則為0,1593行對應(yīng)的位置索引為2, 以此類推。

先來看loc(),其API網(wǎng)址http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.htm,函數(shù)名下方有一行解釋,Access a group of rows and columns by label(s) or a boolean array.. loc[] is primarily label based, but may also be used with a boolean array. 

代碼一:

first_listing = normalized_listings.loc[[0,4]]

結(jié)果如下,可以看出其輸出的是dataframe中標(biāo)簽索引為0和4的兩行數(shù)據(jù)。注意,如果標(biāo)簽索引的類型為字符串,則在loc中也要用字符串的形式。

再來看iloc(),其API網(wǎng)址http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html,函數(shù)名下方的解釋為 Purely integer-location based indexing for selection by position. .iloc[] is primarily integer position based ( from 0 to length-1 of the axis), but may also be used with a boolean array.

代碼二:

first_listing = normalized_listings.iloc[[0,4]]

結(jié)果如下,可以看出其輸出的dataframe中第0行和第4行的數(shù)據(jù),即按方法是按照位置索引取得數(shù)。注意使用位置索引的時候只能用整數(shù)(integer position,bool類型除外)

另外,還可以向loc和iloc中傳入bool序列,這樣就可以將前面介紹的boo表達(dá)式用到loc和iloc中。下面來看看怎么使用bool序列?

import pandas as pd
data=pd.DataFrame(data={'col1':[1,2,3,5,10],'col2':[50,90,67,75,100]},\
         index=['a','b','c','d','e'])
print(data)
#iloc[]示例,iloc似乎不能直接使用邏輯表達(dá)式的結(jié)果,我這里將其轉(zhuǎn)置成list之后就可以用了,原因暫且不明
data_1=data.iloc[list(data['col1']>5)]
print(data_1)
#loc[]示例,loc中可以直接使用邏輯表達(dá)式
data_2=data.loc[data['col1']>5]
print(data_2)

在iloc[]中,如果直接使用loc中的邏輯表達(dá)式而不進(jìn)行l(wèi)ist()轉(zhuǎn)化的話,會提示ValueError: iLocation based boolean indexing cannot use an indexable as a mask錯誤。

如果查看上述兩段代碼中得到的first_listing。我們會發(fā)現(xiàn)兩處first_listing的類型均為datafrarm。loc和iloc除了能對行進(jìn)行篩選,還可以篩選列。如果在loc和iloc中設(shè)定了對列的篩選,則篩選之后得到的數(shù)據(jù)可能是datafrme類型,也有可能是Series類型。下面直接以代碼運(yùn)行結(jié)果進(jìn)行說明。

import pandas as pd
data=pd.DataFrame(data={'col1':[1,2,3,5,10],'col2':[50,90,67,75,100]},\
         index=['a','b','c','d','e'])
print(data)
#iloc[]示例 ,在使用iloc的時候,[]里面無論是篩選行還是篩選列,都只能使用數(shù)字形式的行號或列號。
#這里如果使用‘col2',這里會報錯
data_1=data.iloc[[0,4],[1]]#當(dāng)需要篩選出多列或者希望返回的結(jié)果為DataFrame時,可以將列號用[]括起來。
print(data_1)
print(type(data_1))
data_2=data.iloc[[0,4],1]#當(dāng)只需要篩選出其中的一列時可以只寫一個列號,不加中括號,這種方法得到的是一個Series
print(data_2)
print(type(data_2))
#loc[]示例
data_3=data.loc[['a','e'],['col2']]
print(data_3)
print(type(data_3))
data_4=data.loc[['a','e'],'col2']
print(data_4)
print(type(data_4))

具體的代碼執(zhí)行結(jié)果如下:

最后看ix()方法,其API網(wǎng)址http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.ix.html,其解釋為 A primarily label-location based indexer, with integer position fallback.

代碼三:

first_listing = normalized_listings.ix[[0,4]]

結(jié)果如下似乎與loc()方法的結(jié)果是相同的,但是從其給出的解釋來看,其好像是前兩個方法的集合。

到此這篇關(guān)于pandas按條件篩選數(shù)據(jù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)pandas 條件篩選 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python通過PIL獲取圖片主要顏色并和顏色庫進(jìn)行對比的方法

    Python通過PIL獲取圖片主要顏色并和顏色庫進(jìn)行對比的方法

    這篇文章主要介紹了Python通過PIL獲取圖片主要顏色并和顏色庫進(jìn)行對比的方法,實(shí)例分析了Python通過PIL模塊操作圖片的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • Python標(biāo)準(zhǔn)庫os庫的常用功能解析

    Python標(biāo)準(zhǔn)庫os庫的常用功能解析

    這篇文章主要介紹了Python標(biāo)準(zhǔn)庫os庫的常用功能解析,os庫是Python標(biāo)準(zhǔn)庫之一,它提供了非常豐富的文件及目錄讀寫的方法
    2022-07-07
  • python 爬取免費(fèi)簡歷模板網(wǎng)站的示例

    python 爬取免費(fèi)簡歷模板網(wǎng)站的示例

    這篇文章主要介紹了python 爬取免費(fèi)簡歷模板網(wǎng)站的示例,幫助大家更好的理解和使用python 爬蟲,感興趣的朋友可以了解下
    2020-09-09
  • python 利用 PIL 將數(shù)組值轉(zhuǎn)成圖片的實(shí)現(xiàn)

    python 利用 PIL 將數(shù)組值轉(zhuǎn)成圖片的實(shí)現(xiàn)

    這篇文章主要介紹了python 利用 PIL 將數(shù)組值轉(zhuǎn)成圖片的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • numpy數(shù)組的維度、軸及運(yùn)用詳解

    numpy數(shù)組的維度、軸及運(yùn)用詳解

    這篇文章主要介紹了numpy數(shù)組的維度、軸詳解,numpy數(shù)組的某個軸,指的是:該數(shù)組的某個維度的方向,其方向從索引號由底到高,許多numpy方法或函數(shù)在調(diào)用時,常常需要指定一個關(guān)鍵參數(shù)“axis=X”,它表示的是沿哪個軸的方向進(jìn)行運(yùn)算,需要的朋友可以參考下
    2023-09-09
  • 詳解使用python爬取抖音app視頻(appium可以操控手機(jī))

    詳解使用python爬取抖音app視頻(appium可以操控手機(jī))

    這篇文章主要介紹了詳解使用python爬取抖音app視頻(appium可以操控手機(jī)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • MacBook m1芯片采用miniforge安裝python3.9的方法示例

    MacBook m1芯片采用miniforge安裝python3.9的方法示例

    這篇文章主要介紹了MacBook m1芯片采用miniforge安裝python3.9的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 簡述python&pytorch 隨機(jī)種子的實(shí)現(xiàn)

    簡述python&pytorch 隨機(jī)種子的實(shí)現(xiàn)

    這篇文章主要介紹了簡述python&pytorch 隨機(jī)種子的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Python?生成器yield原理及用法

    Python?生成器yield原理及用法

    這篇文章主要介紹了Python?生成器yield原理及用法,yield?是實(shí)現(xiàn)生成器方法之一,當(dāng)函數(shù)使用yield方法,則該函數(shù)就成為了一個生成器,更多相關(guān)資料需要的小伙伴可以參考一下下面文章內(nèi)容
    2022-06-06
  • Python導(dǎo)入不同文件夾中文件的方法詳解

    Python導(dǎo)入不同文件夾中文件的方法詳解

    在寫python程序的時候,經(jīng)常會用到引入其他文件夾里的py文件,下面這篇文章主要給大家介紹了關(guān)于Python導(dǎo)入不同文件夾中文件的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06

最新評論

普兰店市| 老河口市| 虞城县| 香河县| 轮台县| 聊城市| 衡阳县| 莎车县| 庆安县| 巴林右旗| 衡山县| 连云港市| 宁南县| 镇安县| 汤原县| 平潭县| 天长市| 巨野县| 霍州市| 洛隆县| 电白县| 台州市| 新巴尔虎左旗| 洪泽县| 淮安市| 兴文县| 德江县| 陈巴尔虎旗| 辽宁省| 南召县| 庄河市| 沙河市| 阜平县| 嵩明县| 岳西县| 松桃| 长子县| 宿迁市| 武威市| 南漳县| 阿拉善盟|