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

python數(shù)據(jù)分析基礎之pandas中l(wèi)oc()與iloc()的介紹與區(qū)別介紹

 更新時間:2024年07月26日 10:09:40   作者:sodaloveer  
我們經(jīng)常在尋找數(shù)據(jù)的某行或者某列的時常用到Pandas中的兩種方法iloc和loc,兩種方法都接收兩個參數(shù),第一個參數(shù)是行的范圍,第二個參數(shù)是列的范圍,這篇文章主要介紹了python數(shù)據(jù)分析基礎之pandas中l(wèi)oc()與iloc()的介紹與區(qū)別,需要的朋友可以參考下

前言

我們經(jīng)常在尋找數(shù)據(jù)的某行或者某列的時常用到Pandas中的兩種方法iloc和loc,兩種方法都接收兩個參數(shù),第一個參數(shù)是行的范圍,第二個參數(shù)是列的范圍。

一、loc[]函數(shù)

loc:

  • 接收的是行、列的名稱或標簽。
  • 在切片是按閉區(qū)間切片,也就是區(qū)間兩邊都能取到。

二、iloc[]函數(shù)

iloc:

  • 接收的是行、列的索引位置(下標,從0開始)。
  • 按傳統(tǒng)的左閉右開的的方式切片。

三、詳細用法

創(chuàng)建用于測試的數(shù)據(jù)表dataframe:

import pandas as pd
data={'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],
      'year':[2000,2001,2002,2001,2002],
      'pop':[1.5,1.7,3.6,2.4,2.9]}
frame=pd.DataFrame(data)
frame.index=list('abcde') 
frame

loc方法

1、單個行名/列名 或 行名/列名的列表

要求:讀取第2行,行名為’b’。

frame.loc['b']

注意: 上面這種寫法,運行"print(type(frame.loc[‘b’]))"可以知道返回的是<class ‘pandas.core.series.Series’>對象,如果要<class ‘pandas.core.frame.DataFrame’>對象可以改成frame.loc[[‘b’]]。

frame.loc[['b']]

要求:取第1、2列的第2與第5行,第1、2列的列名分別為’state’與’year’,第2、5行的行名分別為’b’和’e’。

frame.loc[['b','e'],['state','year']]

2、列名/行名的切片

要求:讀取第2列,列名為’year’。

frame.loc[:,'year']  #返回的是<class 'pandas.core.series.Series'>對象。

frame.loc[:,['year']] #返回的是<class 'pandas.core.frame.DataFrame'>對象。

要求:取第2行第3列,第2行行名為’b’,第3列列名為’pop’。

frame.loc['b','pop']

要求:讀取dataframe某個區(qū)域,比如第3列的第2到第5行,第3列為"pop"列,第2到第5行即b行到e行。

frame.loc['b':'e','pop'] #返回的是<class 'pandas.core.series.Series'>對象。

frame.loc['b':'e',['pop']] #返回的是<class 'pandas.core.frame.DataFrame'>對象。

要求:取第1、2列的第2到第5行,第1、2列的列名分別為’state’和’yea‘列,第2、5行的行名為’b’和‘e’行。

frame.loc['b':'e','state':'year'] #返回的是<class 'pandas.core.frame.DataFrame'>對象。

3、返回布爾型列表的表達式(判斷或函數(shù))

要求:根據(jù)判斷條件讀取,取第3列大于2的。

frame.loc[frame['pop']>2,'pop'] #返回的是<class 'pandas.core.series.Series'>對象。

frame.loc[frame['pop']>2,['pop']] #返回的是<class 'pandas.core.frame.DataFrame'>對象。

要求:根據(jù)函數(shù)讀取,取第3列大于2的所有行與列。

frame.loc[lambda x: x['pop']>2]

iloc方法

 1、單個下標 或 若干下標構(gòu)成的列表,從0開始。

要求:取第2行的值。

frame.iloc[1] 

注意: 上面這種寫法,運行"print(type(frame.iloc[1]]))"可以知道返回的是<class ‘pandas.core.series.Series’>對象,如果要<class ‘pandas.core.frame.DataFrame’>對象可以改成frame.iloc[[1]]。

frame.iloc[[1]]

要求:取第1、2列的第2與第5行。

frame.iloc[[1,4],[0,1]]

2、下標的切片

要求:取第2列的值。

frame.iloc[:,1] #返回的是<class 'pandas.core.series.Series'>對象。

frame.iloc[:,[1]]  #返回的是<class 'pandas.core.frame.DataFrame'>對象。

要求:取第2行第3列

frame.iloc[1,2]

要求:讀取dataframe某個區(qū)域,比如第3列的第2到第5行。

frame.iloc[1:5,2]  #返回的是<class 'pandas.core.series.Series'>對象。

frame.iloc[1:5,[2]] #返回的是<class 'pandas.core.frame.DataFrame'>對象。

要求:取第1、2列的第2到第5行。

frame.iloc[1:5,0:2] #因為是.iloc[]中用:表示從第幾行/列到第幾行/列是左閉右開的的方式,因此這里下標3表示第四行與第四列是取不到的。
frame.iloc[[1,2,3,4],[0,1]] #第二種寫法

3、可以返回合理值的函數(shù)

要求:當DataFrame的index是整數(shù),取index為偶數(shù)的記錄。

import pandas as pd
data={'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],
      'year':[2000,2001,2002,2001,2002],
      'pop':[1.5,1.7,3.6,2.4,2.9]}
frame=pd.DataFrame(data)
frame
frame.iloc[lambda x: x.index % 2 == 0]

總結(jié)

共同點

  • 兩者都接收兩個參數(shù),第一個參數(shù)是行的范圍,第二個參數(shù)是列的范圍。
  • 兩者都可以有行索引值沒有列索引值,但有列索引值前必須得有行索引值,但loc[]行索引值只能為名稱形式來取,不能按下標形式來取。iloc[]則相反。

取第三列,無論使用loc[]函數(shù)還是iloc[]函數(shù),如果沒有行索引都會報錯。

frame.loc['pop']
frame.loc[,'pop']
frame.iloc[,3]

不同點

1、loc[]函數(shù)接收的是行/列的名稱(可以是整數(shù)或者字符),iloc[]函數(shù)接收的是行/列的下標(從0開始),不能是字符。

2、loc[]函數(shù)在切片時是按閉區(qū)間切片的,也就是區(qū)間兩邊都能取到,iloc[]函數(shù)則是按傳統(tǒng)的左閉右開的方式切片的。

參考文章:
https://blog.csdn.net/weixin_43298886/article/details/112632237
https://blog.csdn.net/Leon_Kbl/article/details/97492966

到此這篇關于python數(shù)據(jù)分析基礎之pandas中l(wèi)oc()與iloc()的介紹與區(qū)別的文章就介紹到這了,更多相關python pandas中l(wèi)oc()與iloc()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

镇康县| 怀柔区| 吉林省| 雷州市| 通许县| 涿鹿县| 旬邑县| 湖北省| 辽宁省| 乌鲁木齐市| 元谋县| 潢川县| 金秀| 望奎县| 澜沧| 温州市| 洪江市| 宁晋县| 扬中市| 通城县| 清新县| 富蕴县| 澜沧| 康马县| 岐山县| 海晏县| 大悟县| 防城港市| 台中县| 尚义县| 洪湖市| 汝阳县| 阿克陶县| 南开区| 沙洋县| 武乡县| 南充市| 徐州市| 山阴县| 绥宁县| 沈阳市|