經過昨天兩天想必已經學會了使用loc和iloc語法取得單一列資料,
(DAY9 Pandas使用loc語法取得單一列資料、DAY10 Pandas使用iloc語法取得單一列資料)
今天要循序漸進來講解取得多列資料的用法,
因為語法使用相似,
今天之後幾天會把相似用法的loc和iloc一起拿來講解比較。
同樣的,範例程式碼也先放上來。
首先,先建立一個DataFrame
結構的資料,
或是有匯入的資料轉成DataFrame結構也行,
這次的資料結構以JSON格式做轉換,
以資料中的A
、B
、C
作為索引。
這邊為了方便對照,先印出完整的資料來看。
scoresData = {
"Chinese":
{
"A": 54,
"B": 76,
"C": 66,
},
"English":
{
"A": 61,
"B": 97,
"C": 75,
},
"Math":
{
"A": 71,
"B": 82,
"C": 67,
}
}
scores = pd.DataFrame(scoresData)
print(scores)
印出資料如下,
對照可看出A、B、C三人在三個科目上的成績分別是多少。
Chinese English Math
A 54 61 71
B 76 97 82
C 66 75 67
若要取得多個索引質資料,中間用,
隔開,
然後用中括號[]
刮起來;
也就是在資料後加上.loc[["索引值1","索引值2"]]
,
使用方式如下,
這邊選擇取得索引值A
及C
的所有欄位的資料。
print(scores.loc[["A", "C"]])
印出資料如下,
資料結構為DataFrame
。
Chinese English Math
A 54 61 71
C 66 75 67
對照完整的表可以找出索引值A
及C
的所有欄位成績,
也就是輸出的值。
使用iloc時就是以index數值做操作,
與loc相似,只是把指定資料名稱改為index數值。
若要取得多個索引質資料,列index中間用,
隔開,
然後用中括號[]
刮起來;
也就是在資料後加上.iloc[[列index1,列index2]]
,
使用方式如下,
這邊選擇取得索引值列index為0及1的所有欄位的資料,
對照整資料就是第一、二列的所有欄位資料。
print(scores.iloc[[0, 1]])
印出資料如下,
資料結構為DataFrame
。
Chinese English Math
A 54 61 71
B 76 97 82
經過這兩天學會了使用loc和iloc取得單一列或是多列的資料,
這邊要特別注意的是,
當取得單一列資料時資料結構會是Series
,
而取得多列資料時資料結構會是DataFrame
,
仔細觀察會發現,
其中的關鍵在於裡面[]決定的。