iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0
佛心分享-讓我升級的那些書

菜雞學習 pandas 的 30 日讀書分享系列 第 11

菜雞學習 pandas 的 30 日讀書分享【Day 11】DataFrame (三)

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20250811/20168290fY5mlOE5PJ.png

DataFrame (三)

pandas 回傳的 Series 的索引和 DataFrame 的索引一樣,而且會適當的設定 name 屬性。

可以使用特殊的 ilocloc 屬性加上位置或名稱來取出橫列。

In [59]: frame2.loc[1]
Out[59]:
year    2001
state   Ohio
pop      1.7
debt     NaN
Name: 1, dtype: object

In [60]: frame2.iloc[2]
Out[60]:
year    2002
state   Ohio
pop      3.6
debt     NaN
Name: 2, dtype: object

欄可以使用賦值來修改。例如,空欄 debt 可以設定成一個純量值,或一個陣列:

In [61]: frame2["debt"] = 16.5

In [62]: frame2
Out[62]:
    year    state  pop  debt
0   2000     Ohio  1.5  16.5
1   2001     Ohio  1.7  16.5
2   2002     Ohio  3.6  16.5
3   2001   Nevada  2.4  16.5
4   2002   Nevada  2.9  16.5
5   2003   Nevada  3.2  16.5

In [63]: frame2["debt"] = np.arange(6.)

In [64]: frame2
Out[64]:
    year    state  pop  debt
0   2000     Ohio  1.5   0.0
1   2001     Ohio  1.7   1.0
2   2002     Ohio  3.6   2.0
3   2001   Nevada  2.4   3.0
4   2002   Nevada  2.9   4.0
5   2003   Nevada  3.2   5.0

將串列或陣列指派給欄時,值的長度必須與 DataFrame 的長度相符。

如果指派一個 Series,標籤會與 DataFrame 的索引重新對齊,索引值未被指定的欄位會被插入 NaN:

In [65]: val = pd.Series([-1.2, -1.5, -1.7], index=["two", "four", "five"])

In [66]: frame2["debt"] = val

In [67]: frame2
Out[67]:
    year    state  pop  debt
0   2000     Ohio  1.5   NaN
1   2001     Ohio  1.7   NaN
2   2002     Ohio  3.6   NaN
3   2001   Nevada  2.4   NaN
4   2002   Nevada  2.9   NaN
5   2003   Nevada  3.2   NaN

指派不存在的直欄會建立新欄。

今日的分享就到這囉,我們明天見,掰掰!


上一篇
菜雞學習 pandas 的 30 日讀書分享【Day 10】DataFrame (二)
下一篇
菜雞學習 pandas 的 30 日讀書分享【Day 12】DataFrame (四)
系列文
菜雞學習 pandas 的 30 日讀書分享30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言