溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Pandas之行選擇和列選擇的示例分析

發(fā)布時(shí)間:2021-08-25 11:00:52 來源:億速云 閱讀:107 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“Pandas之行選擇和列選擇的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Pandas之行選擇和列選擇的示例分析”這篇文章吧。

在剛學(xué)Pandas時(shí),行選擇和列選擇非常容易混淆,在這里進(jìn)行一下討論和歸納

import pandas as pd

fandango = pd.read_csv('fandango_score_comparison.csv')

原始的數(shù)據(jù)如下(截取了一部分)

Pandas之行選擇和列選擇的示例分析

 行選擇

Pandas進(jìn)行行選擇一般有三種方法:

  • 連續(xù)多行的選擇用類似于python的列表切片

  • 按照指定的索引選擇一行或多行,使用loc[]方法

  • 按照指定的位置選擇一行多多行,使用iloc[]方法

第一種,使用類似于python的列表切片

n = fandango[1:3]

Pandas之行選擇和列選擇的示例分析

從結(jié)果可以看到,和python的列表切片一樣,索引號(hào)從0開始,選擇了索引號(hào)1和2的數(shù)據(jù)(不包括3)

 第二種,按照指定的索引選擇一行或多行,使用loc[]方法

o = fandango.loc[1]

p = fandango.loc[1:3]

Pandas之行選擇和列選擇的示例分析

可以看到,o是一個(gè)Series,選擇了索引號(hào)為1的那一行數(shù)據(jù),注意p,它與第一種的列表索引最大的不同是包含了索引號(hào)為3的那一行數(shù)據(jù)

u = fandango.loc[[1,3]]

Pandas之行選擇和列選擇的示例分析

這里按照索引號(hào)選擇不連續(xù)的行

第三種,按照指定的位置選擇一行多多行,使用iloc[]方法

在上面的數(shù)據(jù)中,使用iloc[]和loc[]的效果是一樣的,因?yàn)樗饕?hào)都是從0開始并且連續(xù)不斷,現(xiàn)在我要?jiǎng)h除索引號(hào)為1和2的這兩行

fandango_drop = fandango.drop([1,2], axis=0)

Pandas之行選擇和列選擇的示例分析

可以看到的確刪除了兩行數(shù)據(jù)

此時(shí)我仍然用loc[]來索引行號(hào)為2的那一行,就會(huì)出錯(cuò)

s = fandango_drop.loc[2]

Pandas之行選擇和列選擇的示例分析

但是,我使用iloc[]來進(jìn)行一次

t = fandango_drop.iloc[2]

Pandas之行選擇和列選擇的示例分析

看到了吧,iloc[2]的意思是選擇第三行的數(shù)據(jù),也就是索引號(hào)為4的那一行數(shù)據(jù),因?yàn)閕loc[]的計(jì)算也是從0開始的,所以iloc[]適用于數(shù)據(jù)進(jìn)行了篩選后造成索引號(hào)與原來不一致的情況

loc[]與iloc[]方法之間還有一個(gè)巨大的差別,那就是loc[]里的參數(shù)是對(duì)應(yīng)的索引值即可,所以參數(shù)可以是整數(shù),也可以是字符串。而iloc[]里的參數(shù)表示的是第幾行的數(shù)據(jù),所以只能是整數(shù)

 列選擇

列選擇比較簡(jiǎn)單,只要直接把列名傳遞過去即可,如果有多列的數(shù)據(jù),要單獨(dú)指出列名或列的索引號(hào)

第一種,選擇單列,選擇了電影名稱那一列

q = fandango['FILM']

Pandas之行選擇和列選擇的示例分析

第二種,通過指定列名選擇多列

r = fandango[['FILM','Metacritic']]

Pandas之行選擇和列選擇的示例分析

第三種,非常容易讓人混淆的,通過列的索引號(hào)選擇多列

v = fandango[[0,1,2]]

Pandas之行選擇和列選擇的示例分析

其實(shí),列也是有一個(gè)索引號(hào)的,看到這里不禁想問,那我要選擇前5列呢?我不想寫一個(gè)長(zhǎng)列表,又不想逐個(gè)寫出這5列的名稱,能否用切片呢?

x = fandango[[0:5]]

Pandas之行選擇和列選擇的示例分析

事實(shí)證明,這是不行的,更好的方法是在參數(shù)中構(gòu)建一個(gè)列表

w = fandango[list(range(5))]

以上是“Pandas之行選擇和列選擇的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI