日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Pandas loc/iloc用法详解

發布時間:2023/12/10 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pandas loc/iloc用法详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Pandas loc/iloc用法詳解

在數據分析過程中,很多時候需要從數據表中提取出相應的數據,而這么做的前提是需要先“索引”出這一部分數據。雖然通過 Python 提供的索引操作符"[]“和屬性操作符”."可以訪問 Series 或者 DataFrame 中的數據,但這種方式只適應與少量的數據,為了解決這一問題,Pandas 提供了兩種類型的索引方式來實現數據的訪問。

本節就來講解一下,如何在 Pandas 中使用 loc 函數和 iloc 函數。兩種函數說明如下:

方法名稱說明
.loc[]基于標簽索引選取數據
.iloc[]基于整數索引選取數據
.loc[]df.loc[] 只能使用標簽索引,不能使用整數索引。當通過標簽索引的切片方式來篩選數據時,它的取值前閉后閉,也就是只包括邊界值標簽(開始和結束)。

.loc[] 具有多種訪問方法,如下所示:

一個標量標簽

標簽列表

切片對象

布爾數組

loc[] 接受兩個參數,并以’,'分隔。第一個位置表示行,第二個位置表示列。示例如下:

import numpy as np import pandas as pd #創建一組數據 data = {'name': ['John', 'Mike', 'Mozla', 'Rose', 'David', 'Marry', 'Wansi', 'Sidy', 'Jack', 'Alic'],'age': [20, 32, 29, np.nan, 15, 28, 21, 30, 37, 25],'gender': [0, 0, 1, 1, 0, 1, 0, 0, 1, 1],'isMarried': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no']} label = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'] df = pd.DataFrame(data, index=label) print(df) #對行操作 print(df.loc['a':'d',:]) #等同于df.loc['a':'d']

輸出結果:

name age gender isMarried a John 20.0 0 yes b Mike 32.0 0 yes c Mozla 29.0 1 no d Rose NaN 1 yes e David 15.0 0 no f Marry 28.0 1 no g Wansi 21.0 0 no h Sidy 30.0 0 yes i Jack 37.0 1 no j Alic 25.0 1 no #從a到d,切記包含dname age gender isMarried a John 20.0 0 yes b Mike 32.0 0 yes c Mozla 29.0 1 no d Rose NaN 1 yes

對列進行操作,示例如下:

import numpy as np import pandas as pd #創建一組數據 data = {'name': ['John', 'Mike', 'Mozla', 'Rose', 'David', 'Marry', 'Wansi', 'Sidy', 'Jack', 'Alic'],'age': [20, 32, 29, np.nan, 15, 28, 21, 30, 37, 25],'gender': [0, 0, 1, 1, 0, 1, 0, 0, 1, 1],'isMarried': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no']} label = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'] df = pd.DataFrame(data, index=label) print(df.loc[:,'name'])

輸出結果:

a John b Mike c Mozla d Rose e David f Marry g Wansi h Sidy i Jack j Alic Name: name, dtype: object

對行和列同時操作,示例如下:

import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(8, 4), index = ['a','b','c','d','e','f','g','h'], columns = ['A', 'B', 'C', 'D']) print(df.loc[['a','b','f','h'],['A','C']])

輸出如下:

A C a 1.168658 0.008070 b -0.076196 0.455495 f 1.224038 1.234725 h 0.050292 -0.031327 布爾值操作,示例如下: import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(4, 4),index = ['a','b','c','d'], columns = ['A', 'B', 'C', 'D']) #返回一組布爾值 print(df.loc['b']>0)

輸出結果:

A True B True C False D True Name: b, dtype: bool .iloc[]

df.iloc[] 只能使用整數索引,不能使用標簽索引,通過整數索引切片選擇數據時,前閉后開(不包含邊界結束值)。同 Python 和 NumPy 一樣,它們的索引都是從 0 開始。

.iloc[] 提供了以下方式來選擇數據:

  • 整數索引

  • 整數列表

  • 數值范圍

  • 示例如下:

    data = {'name': ['John', 'Mike', 'Mozla', 'Rose', 'David', 'Marry', 'Wansi', 'Sidy', 'Jack', 'Alic'],'age': [20, 32, 29, np.nan, 15, 28, 21, 30, 37, 25],'gender': [0, 0, 1, 1, 0, 1, 0, 0, 1, 1],'isMarried': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no']} label = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'] df = pd.DataFrame(data, index=label) print(df) print(df.iloc[2:,])

    輸出結果:

    name age gender isMarried a John 20.0 0 yes b Mike 32.0 0 yes c Mozla 29.0 1 no d Rose NaN 1 yes e David 15.0 0 no f Marry 28.0 1 no g Wansi 21.0 0 no h Sidy 30.0 0 yes i Jack 37.0 1 no j Alic 25.0 1 noname Mozla age 29 gender 1 isMarried no Name: c, dtype: object

    再看一組示例:

    import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(8, 4), columns = ['A', 'B', 'C', 'D']) print df.iloc[[1, 3, 5], [1, 3]] print df.iloc[1:3, :] print df.iloc[:,1:3]

    輸出結果:

    B D 1 0.773595 -0.206061 3 -1.740403 -0.464383 5 1.046009 0.606808A B C D 1 -0.093711 0.773595 0.966408 -0.206061 2 -1.122587 -0.135011 0.546475 -0.551403B C 0 0.623488 3.328406 1 0.773595 0.966408 2 -0.135011 0.546475 3 -1.740403 -0.869073 4 0.591573 -1.463275 5 1.046009 2.330035 6 -0.266607 0.873971 7 -1.059625 -0.405340

    總結

    以上是生活随笔為你收集整理的Pandas loc/iloc用法详解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。