pandas抽取行列數(shù)據(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 = ['語文','數(shù)學(xué)','英語','政治'] mydata = pd.DataFrame(data=score,columns=name,index=course)#指定行列名 print(mydata)
小新 小紅 小李
語文 34 67 87
數(shù)學(xué) 68 98 58
英語 75 73 86
政治 94 59 81
1. 直接用列名抽取單列或多列 – data[列名]
print(mydata['小紅']) # 輸出是一個(gè)Series對(duì)象,而不是DataFrame對(duì)象 語文 67 數(shù)學(xué) 98 英語 73 政治 59 print(mydata[['小紅']]) # 加了[],此時(shí)輸出的是DataFrame對(duì)象 小紅 語文 67 數(shù)學(xué) 98 英語 73 政治 59 print(mydata[['小紅','小李']]) #選擇兩列,此時(shí)必須用[]將兩列括起來 小紅 小李 語文 67 87 數(shù)學(xué) 98 58 英語 73 86 政治 59 81
2. 用行所在矩陣索引抽取一個(gè)行或者連續(xù)多行數(shù)據(jù)
print(mydata[0:1]) #通過0:1選擇了第0行 小新 小紅 小李 語文 34 67 87 mydata[0:3] #通過0:3選擇了第0,1,2三行 小新 小紅 小李 語文 34 67 87 數(shù)學(xué) 68 98 58 英語 75 73 86
3. 用數(shù)據(jù)的“·”方式獲取某一列數(shù)據(jù)
print(mydata.小紅) #通過.小紅選擇了小紅列,注意輸出的是Series對(duì)象 語文 67 數(shù)學(xué) 98 英語 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 = ['語文','數(shù)學(xué)','英語','政治'] mydata1 = pd.DataFrame(data=score,columns=name,index=course) # 指定行名(index)和列名(columns) print(mydata1) mydata2 = pd.DataFrame(score) # 不指定行列名,默認(rèn)使用0,1,2…… print(mydata2)
小明 小紅 小李
語文 34 67 87
數(shù)學(xué) 68 98 58
英語 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[]語法:
有兩個(gè)輸入?yún)?shù),第一個(gè)指定行名,第二個(gè)指定列名。當(dāng)只有一個(gè)參數(shù)時(shí),默認(rèn)是行名(即抽取整行),所有列都選中。
.iloc[]語法:
有兩個(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),”隔開,這非常重要,否則出錯(cuò)。
兩個(gè)方法都接受兩個(gè)參數(shù),第一個(gè)是“行標(biāo)簽”或者“矩陣行號(hào)”,第二個(gè)是“列標(biāo)簽”或者“矩陣列號(hào)”。
學(xué)習(xí)鏈接:
Panadas 中利用DataFrame對(duì)象的.loc[,]、.iloc[,]方法抽取數(shù)據(jù)
pandas的DataFrame對(duì)象抽取“整列”或者“整行”數(shù)據(jù)
到此這篇關(guān)于pandas抽取行列數(shù)據(jù)的幾種方法的文章就介紹到這了,更多相關(guān)pandas抽取行列數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
RuntimeError:CUDA?out?of?memory多種場(chǎng)景下的解決方案
若遇到RuntimeError:?CUDA?out?of?memory錯(cuò)誤,通常意味著GPU內(nèi)存不足以處理當(dāng)前的計(jì)算需求,本文就來介紹一下多種場(chǎng)景下的解決方案,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
Python正則表達(dá)式常用函數(shù)總結(jié)
這篇文章主要介紹了Python正則表達(dá)式常用函數(shù),結(jié)合實(shí)例形式總結(jié)分析了Python正則表達(dá)式常用函數(shù)功能、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-06-06
python實(shí)現(xiàn)從ftp服務(wù)器下載文件的方法
這篇文章主要介紹了python實(shí)現(xiàn)從ftp服務(wù)器下載文件的方法,涉及Python操作FTP的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
解決ModuleNotFoundError: No module named ‘
這篇文章主要介紹了解決ModuleNotFoundError: No module named ‘flask._compat的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Python實(shí)現(xiàn)刪除重復(fù)視頻文件的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)刪除重復(fù)視頻文件功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下2022-10-10
Python元類編程實(shí)現(xiàn)一個(gè)簡(jiǎn)單的ORM
本文主要介紹了Python元類編程實(shí)現(xiàn)一個(gè)簡(jiǎn)單的ORM,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
Pytorch實(shí)現(xiàn)WGAN用于動(dòng)漫頭像生成
這篇文章主要介紹了Pytorch實(shí)現(xiàn)WGAN用于動(dòng)漫頭像生成,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

