iT邦幫忙

0

Day 9|多表關聯與資料整合:Pandas Merge 與 Concat 實戰

  • 分享至 

  • xImage
  •  

第九天,我們要解決資料分析中極為常見的需求——多表格整併(Data Merging & Concatenation)。在實際專案裡,數據很少單獨存放在同一張表,例如會員資料、訂單明細與商品目錄通常會分開儲存。今天我們建立純 Python 腳本 day09_pandas_merge.py,掌握類似 SQL JOIN 概念的 pd.merge() 與縱向/橫向拼接的 pd.concat()。

第一部分
新建 day09_pandas_merge.py。首先建立兩張具備關聯鍵(user_id)的資料表:訂單表與會員表,並使用預設的「內交集(Inner Join)」進行合併,僅保留雙方都存在的紀錄:
https://ithelp.ithome.com.tw/upload/images/20261003/201844725Uk3gxuC4t.png

第二部分
實務上常需要以特定表格為主體,例如「保留所有訂單,即使查無會員名稱(Left Join)」,或是「列出所有會員,查看其消費紀錄(Right Join / Outer Join)」。我們可以透過調整 how 參數來實現:
https://ithelp.ithome.com.tw/upload/images/20261003/20184472El62yr1c1k.png

第三部分
除了基於鍵值(Key)關聯的 Merge 之外,有時我們需要把結構相同的兩份資料「上下堆疊」起來(例如 1 月與 2 月的銷售紀錄)。此時可以使用 pd.concat() 進行軸向串接:
https://ithelp.ithome.com.tw/upload/images/20261003/20184472FiSvHDyikh.png

第四部分
在終端機輸入 python day09_pandas_merge.py 執行驗證,確認 Inner/Left/Outer 合併以及兩月份資料堆疊均正常輸出。按 Ctrl + S 儲存後推送到遠端儲存庫:
https://ithelp.ithome.com.tw/upload/images/20261003/201844726li2UIQQzS.png

今日心得/遇到的問題
今天釐清了 merge() 與 concat() 的使用時機:merge 就像關聯式資料庫的 JOIN,依據共同欄位將兩張表的資訊橫向水平整併;而 concat 則常用於將不同批次、相同格式的檔案縱向堆疊在一起。在做 concat 堆疊時,記得加上 ignore_index=True,這樣產生的新表格索引才會重新從 0 排到最後,避免保留原始子表的重複 index。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言