Pandas庫十分強大,但是對于切片操作iloc, loc和ix,很多人對此十分迷惑,因此本篇博客利用例子來說明這3者之一的區(qū)別和聯(lián)系,尤其是iloc和loc。
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),夏邑企業(yè)網(wǎng)站建設(shè),夏邑品牌網(wǎng)站建設(shè),網(wǎng)站定制,夏邑網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,夏邑網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。對于ix,由于其操作有些復雜,我在另外一篇博客專門詳細介紹ix。
首先,介紹這三種方法的概述:
接下來,舉幾個例子說明:
1 loc
其實,對于loc始終堅持一個原則:loc是基于label進行索引的!
import pandas as pd df1 = pd.DataFrame(data= [[1, 2, 3],[4, 5, 6], [7, 8, 9]], index=[0, 1, 2], columns=['a','b','c']) df2 = pd.DataFrame(data= [[1, 2, 3],[4, 5, 6], [7, 8, 9]], index=['e', 'f', 'g'], columns=['a','b','c']) print(df1) print(df2) ''' df1: a b c 0 1 2 3 1 4 5 6 2 7 8 9 df2: a b c e 1 2 3 f 4 5 6 g 7 8 9 ''' # loc索引行,label是整型數(shù)字 print(df1.loc[0]) ''' a 1 b 2 c 3 Name: 0, dtype: int64 ''' # loc索引行,label是字符型 print(df2.loc['e']) ''' a 1 b 2 c 3 Name: 0, dtype: int64 ''' # 如果對df2這么寫:df2.loc[0]會報錯,因為loc索引的是label,顯然在df2的行的名字中沒有叫0的。 print(df2.loc[0]) ''' TypeError: cannot do slice indexing onwith these indexers [0] of ''' # loc索引多行數(shù)據(jù) print(df1.loc[1:]) ''' a b c 1 4 5 6 2 7 8 9 ''' # loc索引多列數(shù)據(jù) print(df1.loc[:,['a', 'b']]) ''' a b 0 1 2 1 4 5 2 7 8 ''' # df1.loc[:,0:2]這么寫報錯, 因為loc索引的是label,顯然在df1的列的名字中沒有叫0,1和2的。 print(df1.loc[:,0:2]) ''' TypeError: cannot do slice indexing on with these indexers [0] of ''' # locs索引某些行某些列 print(df1.loc[0:2, ['a', 'b']]) ''' a b 0 1 2 1 4 5 2 7 8 '''
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。