昨天學會了用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"],[欄位名稱1,欄位名稱2]]
,
使用方式如下,
這邊選擇取得索引值A
及C
的Chinese
和Math
欄位的資料。
print(scores.loc[["A", "C"], ["Chinese", "Math"]])
印出資料如下,
資料結構為DataFrame
。
Chinese Math
A 54 71
C 66 67
對照完整的表可以找出索引值A
及C
的Chinese
和Math
欄位成績,
也就是輸出的值。
使用iloc時就是以index數值做操作,
與loc相似,只是把指定資料名稱改為index數值。
若要取得多個索引質資料,列index中間用,
隔開,
然後用中括號[]
刮起來;
同樣的取多欄位時也是將欄index用,
隔開,
也同樣用中括號[]
刮起來。
合併來說就是
在資料後加上.iloc[[列index1,列index2],[欄index1,欄index2]]
,
使用方式如下,
這邊選擇取得索引值列index為0及1的欄index為0、1和2欄位的資料,
對照整資料就是第一、二列的Chinese、English、 Math欄位資料。
print(scores.iloc[[0, 1], [0, 1,2]])
印出資料如下,
資料結構為DataFrame
。
Chinese English Math
A 54 61 71
B 76 97 82
這幾天對照了使用loc、iloc語法取得指定列資料的方式,
明顯可以比較出兩者差異loc是用資料名稱來取得資料,
iloc則是用index數值來取得資料,
兩者各有利弊,
當然還是要看當時專案的情況來決定囉。