溫馨提示×

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

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

利用pandas怎么對(duì)行列的數(shù)據(jù)進(jìn)行抽取

發(fā)布時(shí)間:2020-12-14 14:17:21 來(lái)源:億速云 閱讀:180 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

今天就跟大家聊聊有關(guān)利用pandas怎么對(duì)行列的數(shù)據(jù)進(jìn)行抽取,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

取行和列的幾種常用方式:

data[ 列名 ]: 取單列或多列,不能用連續(xù)方式取,也不能用于取行。
data.列名: 只用于取單列,不能用于行。
data[ i:j ]: 用起始行下標(biāo)(i)和終止行下標(biāo)(j)取單行或者連續(xù)多行,不能用于列的選取。
data.loc[行名,列名]: 用對(duì)象的.loc[]方法實(shí)現(xiàn)各種取數(shù)據(jù)方式。
data.iloc[行下標(biāo),列下標(biāo)]: 用對(duì)象的.iloc[]方法實(shí)現(xiàn)各種取數(shù)據(jù)方式。

首先生成一個(gè)DataFrame對(duì)象:

import pandas as pd
score = [[34,67,87],[68,98,58],[75,73,86],[94,59,81]]
name = ['小新','小紅','小李']
course = ['語(yǔ)文','數(shù)學(xué)','英語(yǔ)','政治']
mydata = pd.DataFrame(data=score,columns=name,index=course)#指定行列名
print(mydata)

小新  小紅  小李
語(yǔ)文  34  67  87
數(shù)學(xué)  68  98  58
英語(yǔ)  75  73  86
政治  94  59  81

1. 直接用列名抽取單列或多列 – data[列名]

print(mydata['小紅']) # 輸出是一個(gè)Series對(duì)象,而不是DataFrame對(duì)象
語(yǔ)文 67
數(shù)學(xué) 98
英語(yǔ) 73
政治 59 

print(mydata[['小紅']]) # 加了[],此時(shí)輸出的是DataFrame對(duì)象
 小紅
語(yǔ)文 67
數(shù)學(xué) 98
英語(yǔ) 73
政治 59

print(mydata[['小紅','小李']]) #選擇兩列,此時(shí)必須用[]將兩列括起來(lái)
 小紅 小李
語(yǔ)文 67 87
數(shù)學(xué) 98 58
英語(yǔ) 73 86
政治 59 81

2. 用行所在矩陣索引抽取一個(gè)行或者連續(xù)多行數(shù)據(jù)

print(mydata[0:1]) #通過(guò)0:1選擇了第0行
 小新 小紅 小李
語(yǔ)文 34 67 87

mydata[0:3] #通過(guò)0:3選擇了第0,1,2三行
 小新 小紅 小李
語(yǔ)文 34 67 87
數(shù)學(xué) 68 98 58
英語(yǔ) 75 73 86

3. 用數(shù)據(jù)的“·”方式獲取某一列數(shù)據(jù)

print(mydata.小紅) #通過(guò).小紅選擇了小紅列,注意輸出的是Series對(duì)象
語(yǔ)文 67
數(shù)學(xué) 98
英語(yǔ) 73
政治 59

4. panadas 中利用DataFrame對(duì)象的.loc[,]、.iloc[,]方法抽取數(shù)據(jù)

引例:

import pandas as pd
score = [[34,67,87],[68,98,58],[75,73,86],[94,59,81]]
name = ['小新','小紅','小李']
course = ['語(yǔ)文','數(shù)學(xué)','英語(yǔ)','政治']
mydata1 = pd.DataFrame(data=score,columns=name,index=course) # 指定行名(index)和列名(columns)
print(mydata1)
mydata2 = pd.DataFrame(score) # 不指定行列名,默認(rèn)使用0,1,2……
print(mydata2)

    小明  小紅  小李
語(yǔ)文  34  67  87
數(shù)學(xué)  68  98  58
英語(yǔ)  75  73  86
政治  94  59  81
    0   1   2
0  34  67  87
1  68  98  58
2  75  73  86
3  94  59  81

DataFrame對(duì)象的.loc[]和.iloc[]方法都可用于抽取數(shù)據(jù),區(qū)別是:

  • .loc[]: 以列名和行名作為參數(shù)。

  • .iloc[]: 以二維矩陣的位置指標(biāo)(即0,1,2……)作為參數(shù)。

.loc[]語(yǔ)法:

有兩個(gè)輸入?yún)?shù),第一個(gè)指定行名,第二個(gè)指定列名。當(dāng)只有一個(gè)參數(shù)時(shí),默認(rèn)是行名(即抽取整行),所有列都選中。

.iloc[]語(yǔ)法:

有兩個(gè)輸入?yún)?shù),第一個(gè)指定行位置,第二個(gè)指定列位置。當(dāng)只有一個(gè)參數(shù)時(shí),默認(rèn)是行位置(即抽取整行),所有列都選中。

總結(jié):

當(dāng)需要選中所有行的某幾列時(shí),行參數(shù)可以省略,列參數(shù)需要指定,此時(shí)列參數(shù)前面必須帶上“,:”,形如.loc[:,列參數(shù)],.iloc[:,列參數(shù)]。

兩種方法當(dāng)只指定一個(gè)輸入?yún)?shù)時(shí),都默是跟“行”相關(guān),而“列”則全部被選中。如何行和列都需要指定時(shí),中間用“逗號(hào),”隔開(kāi),這非常重要,否則出錯(cuò)。

兩個(gè)方法都接受兩個(gè)參數(shù),第一個(gè)是“行標(biāo)簽”或者“矩陣行號(hào)”,第二個(gè)是“列標(biāo)簽”或者“矩陣列號(hào)”。

看完上述內(nèi)容,你們對(duì)利用pandas怎么對(duì)行列的數(shù)據(jù)進(jìn)行抽取有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(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