iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0
佛心分享-IT 人自學之術

走在Pandas資料操縱與分析的路上持續前進系列 第 11

DAY11 Pandas使用loc、iloc語法取得指定列資料

  • 分享至 

  • xImage
  •  

經過昨天兩天想必已經學會了使用lociloc語法取得單一列資料,
(DAY9 Pandas使用loc語法取得單一列資料、DAY10 Pandas使用iloc語法取得單一列資料)
今天要循序漸進來講解取得多列資料的用法,
因為語法使用相似,
今天之後幾天會把相似用法的lociloc一起拿來講解比較。
同樣的,範例程式碼也先放上來。

範例

首先,先建立一個DataFrame結構的資料,
或是有匯入的資料轉成DataFrame結構也行,
這次的資料結構以JSON格式做轉換,
以資料中的ABC作為索引。
這邊為了方便對照,先印出完整的資料來看。

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[["索引值1","索引值2"]]
使用方式如下,
這邊選擇取得索引值AC的所有欄位的資料。

print(scores.loc[["A", "C"]])

印出資料如下,
資料結構為DataFrame

   Chinese  English  Math
A       54       61    71
C       66       75    67

對照完整的表可以找出索引值AC的所有欄位成績,
也就是輸出的值。

iloc語法取得指定列資料

使用iloc時就是以index數值做操作,
與loc相似,只是把指定資料名稱改為index數值。

若要取得多個索引質資料,列index中間用,隔開,
然後用中括號[]刮起來;
也就是在資料後加上.iloc[[列index1,列index2]]
使用方式如下,
這邊選擇取得索引值列index01的所有欄位的資料,
對照整資料就是第一、二列的所有欄位資料。

print(scores.iloc[[0, 1]])

印出資料如下,
資料結構為DataFrame

   Chinese  English  Math
A       54       61    71
B       76       97    82

今日結語

經過這兩天學會了使用loc和iloc取得單一列或是多列的資料,
這邊要特別注意的是,
當取得單一列資料時資料結構會是Series
而取得多列資料時資料結構會是DataFrame
仔細觀察會發現,
其中的關鍵在於裡面[]決定的。


上一篇
DAY10 Pandas使用iloc語法取得單一列資料
下一篇
DAY12 Pandas使用loc、iloc語法取得指定列與欄資料
系列文
走在Pandas資料操縱與分析的路上持續前進30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言