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

詳解pandas DataFrame的查詢方法(loc,iloc,at,iat,ix的用法和區(qū)別)

 更新時間:2019年08月02日 11:29:40   作者:蒙面的普羅米修斯  
這篇文章主要介紹了詳解pandas DataFrame的查詢方法(loc,iloc,at,iat,ix的用法和區(qū)別),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在操作DataFrame時,肯定會經常用到loc,iloc,at等函數,各個函數看起來差不多,但是還是有很多區(qū)別的,我們一起來看下吧。

首先,還是列出一個我們用的DataFrame,注意index一列,如下:

接下來,介紹下各個函數的用法:

1、loc函數

愿意看官方文檔的,請戳這里,這里一般最權威。
loc函數是基于“標簽”選擇數據的,但是也可以接受一個boolean的array,對于每個用法,我們從參數方面來一一舉例:

1.1 單個label

接受一個“標簽”(label)參數,返回一個Series,例如下面這個例子收一個標簽,返回通過這個標簽定位的行的值,注意這里是通過標簽定位,而不是通過中括號中的數字定位第幾行,之后我們通過對比iloc函數時還會細說。

test_dict_df.loc[1] #return the row with name 'Bob'
test_dict_df.loc[7] #return the row with name 'Time' important!!!
# type(test_dict_df.loc[1]) #pandas.core.series.Series

1.2 一個label的array

如果鍵入一個標簽的array,那么就返回一個對應的DataFrame:

test_dict_df.loc[[1,2,4]]

結果如下:

1.3 加入一個切片array

test_dict_df.loc[[1:4]]

結果如下:

1.4 行標簽,列標簽

通過在中括號中加入行標簽和列標簽來定位一個cell,相當于坐標的定位:

test_dict_df.loc[1,'english'] #result:94

1.5 行標簽或者列標簽是切片array

test_dict_df.loc[1:4,'english']
# test_dict_df.loc[1:4,'english':'math']

1.6 還可以接受條件,進行選擇

例如我們選擇英語成績超過90的所有行:

test_dict_df.loc[test_dict_df['english']>90]

當然,也可以再條件選擇后,再加入列選擇,列選擇的時候可以單列,也可以是切片數組,通過上面的介紹這里就可以靈活處理:

test_dict_df.loc[test_dict_df['english']>90,'english'] #single label
test_dict_df.loc[test_dict_df['english']>90,'english':'name'] #slice array
test_dict_df.loc[test_dict_df['english']>90,['english','name']] #label array

1.7 接受一個boolean的array

可以接受一個boolean的array,相當于按照這個表的真假按照位置的順序選擇值

test_dict_df.loc[[True,False,False,True]]

loc還有很多用法,這里先介紹到這里吧,當然如果你的DataFrame是復合的行或者復合列,寫法也是不同的,具體就可以查閱官方文檔了!

2、iloc函數

官方文檔戳這里。

iloc函數與loc函數不同的是,它接受的是一個數字,代表著要選擇數據的位置:

test_dict_df.iloc[6]

這代表我們選擇的是第6行,而不是index為6的那一行。當然,也可以接受一個boolean的array,相當于按照這個表的真假按照位置的順序選擇值:

test_dict_df.iloc[[True,False,False,True]]

這里iloc也可以接受切片array:

# test_dict_df.iloc[1:2]
test_dict_df.iloc[[1,2,4]]

3、ix函數(0.20.0版本后已經棄用)

ix就是一種混合索引,字符串的標簽和證書的數據索引都可以作為合法輸入,其實相當于loc和iloc的一個混合方法:

test_dict_df.ix['Alice']
test_dict_df.ix[1]

上述兩種方法都能得到值,這里我們就不追究這個函數具體是怎樣的檢索順序或者工作原理了。因為官方給出的是從pandas0.20.0之后,ix函數已經被棄用。其實在使用的時候,ix函數雖然方便,但是的確有時候會顯得比較混亂,所以我們之后也盡量少用這個函數吧,還是按照官方大佬的指導。

4、at函數

at是用來選擇單個值的,此時用法類似于loc:

test_dict_df.at[1,'english']
test_dict_df.loc[1,'english']

以上兩種方法都能選擇到,label為1,列為'english'的那個值,但是據說at速度要快,這點我沒有考證過。

5、iat函數

iat函數相對于at函數,就相當于iloc相對于loc函數。iat也只能選擇一個值。只不過是用索引位置來選擇,注意:行列都是索引位置來選擇,從0開始數。

# test_dict_df.iat[1,'english'] #error!!!
test_dict_df.iat[2,2] #right!!!

6、概括一下

最后我們概括一下:

1、 loc和iloc函數都是用來選擇某行的,iloc與loc的不同是:iloc是按照行索引所在的位置來選取數據,參數只能是整數。而loc是按照索引名稱來選取數據,參數類型依索引類型而定;

2、 at和iat函數是只能選擇某個位置的值,iat是按照行索引和列索引的位置來選取數據的。而at是按照行索引和列索引來選取數據;

3、 loc和iloc函數的功能包含at和iat函數的功能。

相應的代碼連接:github代碼

先寫到這里,如有新的再補充。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python數據分析numpy文本數據讀取索引切片實例詳解

    Python數據分析numpy文本數據讀取索引切片實例詳解

    這篇文章主要為大家介紹了Python數據分析numpy文本數據讀取索引切片實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • 使用Python開發(fā)一個桌面版PDF蓋章工具

    使用Python開發(fā)一個桌面版PDF蓋章工具

    在數字化辦公中,經常需要在PDF文件上加蓋電子印章,今天我將分享一個使用Python開發(fā)的桌面版PDF蓋章工具,支持可視化操作和精準定位,這個工具基于PyQt5和PyMuPDF庫,提供了友好的圖形界面,需要的朋友可以參考下
    2025-12-12
  • python數據預處理 :數據共線性處理詳解

    python數據預處理 :數據共線性處理詳解

    今天小編就為大家分享一篇python數據預處理 :數據共線性處理詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python中六大超時處理方法介紹

    Python中六大超時處理方法介紹

    在?Python?中,超時處理是一項非常常見的需求,尤其是在處理阻塞任務或并發(fā)任務時,本文整理了大家常用的六大超時處理方法,感興趣的小伙伴可以參考下
    2025-01-01
  • Python的包管理器pip更換軟件源的方法詳解

    Python的包管理器pip更換軟件源的方法詳解

    和其他的包管理工具一樣,pip在國內使用也會經常遇到傳輸困難的問題,那么接下來就介紹一下Python的包管理器pip更換軟件源的方法詳解:
    2016-06-06
  • 詳解django三種文件下載方式

    詳解django三種文件下載方式

    這篇文章主要介紹了詳解django三種文件下載方式,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Python實現設計模式之單例模式詳解

    Python實現設計模式之單例模式詳解

    這篇文章主要介紹了Python實現設計模式之單例模式詳解,設計模式是指軟件設計問題的推薦方案,設計模式一般是描述如何組織代碼和使用最佳實踐來解決常見的設計問題,需謹記一點:設計模式是高層次的方案,并不關注具體的實現細節(jié),比如算法和數據結構,需要的朋友可以參考下
    2023-09-09
  • python多進程共享變量

    python多進程共享變量

    這篇文章主要為大家詳細介紹了python多進程共享變量的相關資料,感興趣的小伙伴們可以參考一下
    2016-04-04
  • python如何代碼集體右移

    python如何代碼集體右移

    在本篇文章里小編給各位分享的是一篇關于python如何代碼集體右移的相關知識點文章,需要的朋友們可以學習下。
    2020-07-07
  • Python函及模塊的使用

    Python函及模塊的使用

    這篇文章主要介紹了Python函及模塊的使用,基本函數包括定義函數、函數的參數、用模塊管理函數等一些基本定義,下面文章不僅對這些又說描述,還有變量的作用域的詳細內容,需要的朋友可以參考一下,希望對你有所幫助
    2021-11-11

最新評論

秀山| 万宁市| 邹平县| 南华县| 南康市| 西乌珠穆沁旗| 鹤峰县| 仲巴县| 阳西县| 万源市| 天水市| 石台县| 石渠县| 仲巴县| 札达县| 合阳县| 塔城市| 达拉特旗| 南安市| 永清县| 紫金县| 磴口县| 上杭县| 彩票| 舒城县| 青阳县| 长宁区| 荔波县| 剑河县| 三江| 兴隆县| 肃南| 法库县| 永平县| 江口县| 东山县| 尼木县| 古田县| 巴塘县| 万源市| 宕昌县|