iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0
自我挑戰組

Medical Data Cleaner系列 第 15 篇

處理重複資料

  • 分享至 

  • xImage
  •  

一、處理重複資料
如果只是把重複資料找出來,使用者還是需要自己手動刪除。
因此今天進一步讓系統在產生清理後資料時,自動移除重複的資料。
先建立一個$isDuplicate變數,用來判斷目前這一筆資料是不是重複資料。
如果資料已經出現過,就把 $isDuplicate 設定成 true。
這次採用的方式是:保留第一筆資料,移除後面完全相同的資料。
二、不要把重複資料加入清理後資料
原本每一筆資料都會加入$cleanedRows:

$cleanedRows[] = $cleanedRow;

現在改成先判斷是不是重複資料:

if (!$isDuplicate) {
    $cleanedRows[] = $cleanedRow;
}

也就是只有不是重複資料的資料,才會加入清理後的資料。這樣原始資料仍然保留,但清理後的資料就不會再包含重複的資料。
三、執行結果
原本測試資料中P009出現兩次:

P009 | 23 | 女 | 168 | 54 | 112/72 | 77 | 皮膚科 | 2026/09/05
P009 | 23 | 女 | 168 | 54 | 112/72 | 77 | 皮膚科 | 2026/09/05

執行清理後,系統會顯示:

【重複資料】P009 → 此筆資料將從清理後資料中移除

而在「清理後資料預覽」中,P009只會保留一筆。
四、原始資料並沒有被修改
原始的CSV仍然保留完整內容,而系統另外產生$cleanedRows作為清理後資料。
這樣做的好處除了是之後可以做比較之外,也不會因為清理錯誤而失去原始資料。


上一篇
資料格式標準化
下一篇
處理數值異常資料
系列文
Medical Data Cleaner 共 16 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言