今天要來講解:
的用法,
在Pandas有著範圍的意義,
簡單來說,
使用:
就是決定取得資料範圍的用法,
在前面(DAY4 Pandas用index取得指定資料)也有提到過,
而今天是要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的:語法如下,
在資料後加上.loc["起始索引值(包含)":"結束索引值(包含)"]
,
使用方式如下,
這邊選擇取得索引值B
到C
的資料。
print(scores.loc['B':'C'])
印出資料如下,
資料結構為DataFrame
。
Chinese English Math
B 76 97 82
C 66 75 67
這邊要注意的是,
可以到看到列出的資料是:前後的資料都包含的。
使用iloc的:語法如下,
在資料後加上.iloc[起始index(包含),結束index(不包含)]
,
這邊要特別注意與loc不同的是,
iloc結束的索引值是不包含在內的。
使用方式如下,
這邊選擇取得索引值起始index為1至結束index為2的資料,
對照上述語法就是
取得資料**第二列(包含)至第三列(不包含)**的資料,
換句話說就是會列出第二列的資料。
print(scores.iloc[1:2])
印出資料如下,
資料結構為DataFrame
。
Chinese English Math
B 76 97 82
這邊順便來簡單複習一下單純:的用法,
使用方式如下。
print(scores[1:2])
印出資料如下,
資料結構為DataFrame
。
Chinese English Math
B 76 97 82
可以看出使用結果和iloc的:語法是一樣的,
因為在這情況下,
兩者都是使用index來取得對應資料所致。
希望今天有對:
語法有更深刻的記憶,
若前後沒加任何數字僅有:
表示全部;
若後面加上數字,例如:2
,表示從最前面到index為2(不包含)的資料;
若前面加上數字,例如2:
,表示從index為2(包含)到最後面的資料;
希望大家都能活用:
語法。