iT邦幫忙

2025 iThome 鐵人賽

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

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

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

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20250813/20168290Gp593kC6d9.png

DataFrame (五)

可傳給 DataFrame 建構式的資料輸入

  • 2D ndarray: 資料矩陣,可傳遞列與欄標籤。
  • 陣列、串列或是 tuple 的字典: 每一個序列都會變成 DataFrame 裡的一欄,所有的序列都必須等長。
  • NumPy 結構 / 紀錄陣列: 視為陣列的字典。
  • Series 的字典: 每個值都變成欄,如果沒有明確傳遞索引,將每個 Series 的索引組在一起,成為結果的列索引。
  • 字典的字典: 每個內部字典都變成欄,將索引鍵組在一起,成為列索引,與「Series 的字典」相同。
  • 字典或 Series 串列: 每個項目都變成 DataFrame 的列,將字典的索引鍵或 Series 的索引組在一起,成為 DataFrame 的欄標籤。
  • 串列或 tuple 的串列: 視為「2D ndarray」。
  • 另一個 DataFrame: 使用 DataFrame 的索引,除非傳入不同的索引。
  • NumPy MaskedArray: 與「2D ndarray」相同,但是在 DataFrame 裡,被遮罩的值會變成缺失值。

如果 DataFrame 的 index 與 columns 被設定 name 屬性,就會被顯示出來:

Im [79]: frame3.index.name = "year"

In [80]: frame3.columns.name = "state"

In [81]: frame3
Out[81]:
state  Ohio  Nevada
2000    1.5     NaN
2001    1.7     2.4
2002    3.6     2.9

與 Series 不同的是,DataFrame 沒有 name 屬性,DataFrame 的 to_numpy 方法會用二維 ndarray 來回傳 DataFrame 裡面的資料:

In [82]: frame3.to_numpy()
Out[82]:
array([[1.5, nan],
       [1.7, 2.4],
       [3.6, 2.9]])

如果 DataFrame 的直欄有不同的資料型態,pandas 會幫回傳的陣列選合適的資料型態:

In [83]: frame2.to_numpy()
Out[83]:
array([[2000, 'Ohio', 1.5, nan],
       [2001, 'Ohio', 1.7, nan],
       [2002, 'Ohio', 3.6, nan],
       [2001, 'Ohio', 2.4, nan],
       [2002, 'Ohio', 2.9, nan],
       [2003, 'Ohio', 3.2, nan]], dtype=object)

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


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

尚未有邦友留言

立即登入留言