1. 程式人生 > 程式設計 >pandas抽取行列資料的幾種方法

pandas抽取行列資料的幾種方法

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

data[ 列名 ]: 取單列或多列,不能用連續方式取,也不能用於取行。
data.列名: 只用於取單列,不能用於行。
data[ i:j ]: 用起始行下標(i)和終止行下標(j)取單行或者連續多行,不能用於列的選取。
data.loc[行名,列名]: 用物件的.loc[]方法實現各種取資料方式。
data.iloc[行下標,列下標]: 用物件的.iloc[]方法實現各種取資料方式。

首先生成一個DataFrame物件:

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

小新 小紅 小李
語文 34 67 87
數學 68 98 58
英語 75 73 86
政治 94 59 81

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

print(mydata['小紅']) # 輸出是一個Series物件,而不是DataFrame物件
語文 67
數學 98
英語 73
政治 59 

print(mydata[['小紅']]) # 加了[],此時輸出的是DataFrame物件
 小紅
語文 67
數學 98
英語 73
政治 59

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

2. 用行所在矩陣索引抽取一個行或者連續多行資料

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

mydata[0:3] #通過0:3選擇了第0,1,2三行
 小新 小紅 小李
語文 34 67 87
數學 68 98 58
英語 75 73 86

3. 用資料的“·”方式獲取某一列資料

print(mydata.小紅) #通過.小紅選擇了小紅列,注意輸出的是Series物件
語文 67
數學 98
英語 73
政治 59 

4. panadas 中利用DataFrame物件的.loc[,]、.iloc[,]方法抽取資料

引例:

import pandas as pd
score = [[34,'政治']
mydata1 = pd.DataFrame(data=score,index=course) # 指定行名(index)和列名(columns)
print(mydata1)
mydata2 = pd.DataFrame(score) # 不指定行列名,預設使用0,2……
print(mydata2)

小明 小紅 小李
語文 34 67 87
數學 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物件的.loc[]和.iloc[]方法都可用於抽取資料,區別是:

  • .loc[]: 以列名和行名作為引數。
  • .iloc[]: 以二維矩陣的位置指標(即0,2……)作為引數。

.loc[]語法:

有兩個輸入引數,第一個指定行名,第二個指定列名。當只有一個引數時,預設是行名(即抽取整行),所有列都選中。

.iloc[]語法:

有兩個輸入引數,第一個指定行位置,第二個指定列位置。當只有一個引數時,預設是行位置(即抽取整行),所有列都選中。

總結:

當需要選中所有行的某幾列時,行引數可以省略,列引數需要指定,此時列引數前面必須帶上“,:”,形如.loc[:,列引數],.iloc[:,列引數]。

兩種方法當只指定一個輸入引數時,都默是跟“行”相關,而“列”則全部被選中。如何行和列都需要指定時,中間用“逗號,”隔開,這非常重要,否則出錯。

兩個方法都接受兩個引數,第一個是“行標籤”或者“矩陣行號”,第二個是“列標籤”或者“矩陣列號”。

學習連結:

Panadas 中利用DataFrame物件的.loc[,]方法抽取資料
pandas的DataFrame物件抽取“整列”或者“整行”資料

到此這篇關於pandas抽取行列資料的幾種方法的文章就介紹到這了,更多相關pandas抽取行列資料內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!