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

pandas loc iloc ix用法詳細分析

 更新時間:2023年01月09日 16:35:21   作者:bitcarmanlee  
pandas處理數(shù)據(jù)時,我們會經??吹絛ataframe結構使用loc, iloc, ix等方法,那么這些方法到底有啥區(qū)別,下面我們來進行詳細分析,感興趣的朋友跟隨小編一起看看吧

1.什么是label

pandas處理數(shù)據(jù)時,我們會經??吹絛ataframe結構使用loc, iloc, ix等方法。那么這些方法到底有啥區(qū)別,下面我們來進行詳細分析。

首先我們先明確一點,這幾個方法都可以用來過濾dataframe的行列。他們的不同,主要還是使用方式的不同。

在分析之前,我們先來明確一下標簽label的概念。為了方便看得更清楚,先構造一個數(shù)據(jù)集

import pandas as pd

def test_loc():
    name = ['n1', 'n2', 'n3', 'n4', 'n5', 'n6']
    age = [1, 2, 3, 4, 5, 6]
    country = ['Chi', 'Chi', 'Ame', 'Ame', 'Jp', 'Koe']
    city = ['bj', 'sh', 'ny', 'ny', 'tok', 'se']
    data = pd.DataFrame({'name': name, 'age': age, 'country': country, 'city': city})

    # label
    print(data)
  name  age country city
0   n1    1     Chi   bj
1   n2    2     Chi   sh
2   n3    3     Ame   ny
3   n4    4     Ame   ny
4   n5    5      Jp  tok
5   n6    6     Koe   se

上面的data,0,1,2,3,4,5為索引,就是我們的行標簽。name ,age,country,city為列名,則是我們的列標簽。

2.loc用法

我們先直接上結論:loc可以基于行列標簽對數(shù)據(jù)進行篩選。

下面通過實驗來說明。

def test_loc():
    name = ['n1', 'n2', 'n3', 'n4', 'n5', 'n6']
    age = [1, 2, 3, 4, 5, 6]
    country = ['Chi', 'Chi', 'Ame', 'Ame', 'Jp', 'Koe']
    city = ['bj', 'sh', 'ny', 'ny', 'tok', 'se']
    data = pd.DataFrame({'name': name, 'age': age, 'country': country, 'city': city})
    # 取前幾行
    print(data.loc[[0, 1, 2]])
    print()
    print(data.loc[0:2])
    print()

    # 取某幾列
    print(data.loc[:, ['name', 'age', 'city']])
    print()

    # 取幾行幾列
    print(data.loc[0:2,['name', 'age', 'city']])
    print()

2.1 選擇行

loc的整體語法為loc[rows, columns]。逗號前面部分為選擇的行,后面部分為選擇的列,":"表示全選。

loc[0:2]與loc[[0, 1, 2]]的效果一致,都是表示選取前3行,可以認為此時是通過行標簽選擇數(shù)據(jù)。

2.2 選擇列

實際操作中,最常見的需求就是選擇某幾列而不是所有數(shù)據(jù)。loc[:, [‘name’, ‘age’, ‘city’]]就是選擇散列,逗號前面的:表示選擇所有行。

2.3 選擇指定的行列

data.loc[0:2,[‘name’, ‘age’, ‘city’]]這種用法,意思就是選擇前三行的name,age,city這三列。

2.4 loc小結

1.就像我們一開始提到的,loc是基于數(shù)據(jù)行列標簽對數(shù)據(jù)進行篩選。
2.針對行標簽選擇時,如果index是默認的整數(shù)序列,選擇的時候包括了末端的一行。
3.":"表示選擇所有行或者所有列。

3.iloc用法

直接上結論:iloc與loc的不同在于,loc基于數(shù)據(jù)標簽進行篩選,而iloc基于位置進行數(shù)據(jù)篩選,i可以認為是integer,即在loc的基礎上,用integer整數(shù)當作"索引"

看個例子

def test_iloc():
    name = ['n1', 'n2', 'n3', 'n4', 'n5', 'n6']
    age = [1, 2, 3, 4, 5, 6]
    country = ['Chi', 'Chi', 'Ame', 'Ame', 'Jp', 'Koe']
    city = ['bj', 'sh', 'ny', 'ny', 'tok', 'se']
    data = pd.DataFrame({'name': name, 'age': age, 'country': country, 'city': city})

    # iloc的索引,不包含最后一個
    print(data.iloc[0:2])
    print()

    #
    print(data.iloc[:, 0:2])
    print()
    print(data.iloc[:,[0, 1, 3]])
    print()

    # print(data.iloc[:, ['name', 'city']])
    # IndexError: .iloc requires numeric indexers, got ['name' 'city']

最后輸出為:

  name  age country city
0   n1    1     Chi   bj
1   n2    2     Chi   sh

  name  age
0   n1    1
1   n2    2
2   n3    3
3   n4    4
4   n5    5
5   n6    6

  name  age city
0   n1    1   bj
1   n2    2   sh
2   n3    3   ny
3   n4    4   ny
4   n5    5  tok
5   n6    6   se

iloc[0:2],表示選擇前兩行。注意在iloc中,末端那行不包括。因為起始索引是0,所以iloc[0:2]選擇的是第0行與第1行。

data.iloc[:, 0:2]表示選擇前兩列,data.iloc[:,[0, 1, 3]]表示選擇第0,1,3列。

如果我們嘗試用列名篩選數(shù)據(jù),data.iloc[:, [‘name’, ‘city’]]
代碼會報錯

IndexError: .iloc requires numeric indexers, got ['name' 'city']

上面的錯誤信息就很明確的告訴了我們,iloc方法需要numeric indexers。

4.ix

最后一個ix,是歷史版本的用法。ix的作用,現(xiàn)在用loc,iloc基本都能實現(xiàn),所以ix也基本上被loc,iloc所代替,現(xiàn)在官方不再推薦使用。

到此這篇關于pandas loc iloc ix用法詳解的文章就介紹到這了,更多相關pandas loc iloc ix用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python使用Selenium+BeautifulSoup爬取淘寶搜索頁

    Python使用Selenium+BeautifulSoup爬取淘寶搜索頁

    這篇文章主要為大家詳細介紹了Python使用Selenium+BeautifulSoup爬取淘寶搜索頁,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • python&MongoDB爬取圖書館借閱記錄

    python&MongoDB爬取圖書館借閱記錄

    這篇文章主要介紹了python&MongoDB爬取圖書館借閱記錄的相關資料,需要的朋友可以參考下
    2016-02-02
  • python中f字符串f-string用法詳解

    python中f字符串f-string用法詳解

    f-string用大括號{}表示被替換字段,其中直接填入替換內容,本文給大家介紹python中f字符串f-string用法詳解,感興趣的朋友一起看看吧
    2023-10-10
  • python輸出決策樹圖形的例子

    python輸出決策樹圖形的例子

    今天小編就為大家分享一篇python輸出決策樹圖形的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python 修改CSV文件實例詳解

    Python 修改CSV文件實例詳解

    這篇文章主要為大家介紹了Python 修改CSV文件實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Python中JSON的使用方法(超詳細)

    Python中JSON的使用方法(超詳細)

    JSON是一種輕量級的數(shù)據(jù)交換格式,它是JavaScript的子集,易于人閱讀和編寫,這篇文章主要介紹了Python中JSON的基本使用,需要的朋友可以參考下
    2022-11-11
  • 屬性與 @property 方法讓你的python更高效

    屬性與 @property 方法讓你的python更高效

    這篇文章主要介紹了python 屬性與 @property 方法的相關資料,幫助大家更好的理解和學習python,感興趣的朋友可以了解下
    2020-09-09
  • 淺析Python中的join()方法的使用

    淺析Python中的join()方法的使用

    這篇文章主要介紹了Python中的join()方法的使用,是Python入門中的基礎知識,需要的朋友可以參考下
    2015-05-05
  • Python集中化管理平臺Ansible介紹與YAML簡介

    Python集中化管理平臺Ansible介紹與YAML簡介

    這篇文章主要介紹了Python集中化管理平臺Ansible介紹與YAML,簡單說明了集中化管理平臺Ansible的功能與YAML語言的基本語法與基本使用技巧,需要的朋友可以參考下
    2019-06-06
  • PyQt5 QTable插入圖片并動態(tài)更新的實例

    PyQt5 QTable插入圖片并動態(tài)更新的實例

    今天小編就為大家分享一篇PyQt5 QTable插入圖片并動態(tài)更新的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06

最新評論