iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0
自我挑戰組

Medical Data Cleaner系列 第 10 篇

使用PHP檢查重複資料

  • 分享至 

  • xImage
  •  

前幾天已經完成缺失值、格式和數值範圍的檢查,今天要處理另一個常見的資料問題:重複資料。
如果同一筆資料被重複記錄,之後進行統計或分析時,可能會讓資料筆數產生誤差,因此也需要在資料清理的過程中把它找出來。
一、建立重複資料
在前幾天建立的測試資料中,我特別放入了一筆重複資料。
其中P009的資料出現了兩次:

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

因此今天的目標就是讓PHP自動找出這筆重複資料。
二、將每一列資料進行比較
這次使用PHP的陣列來記錄已經讀取過的資料。

php id="9g5f2v"
$rows = [];
while (($row = fgetcsv($handle, 0, ',', '"', '')) !== false) {
    $rowKey = implode('|', $row);
    if (isset($rows[$rowKey])) {
        echo '發現重複資料:' . $row[0] . '<br>';
    } else {
        $rows[$rowKey] = true;
    }
}

其中implode()可以把一整列資料組合成一個字串。
例如:

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

這樣就可以用這個結果來判斷兩筆資料是否完全相同。
三、實際檢查結果
執行程式後,成功找到測試資料中的重複紀錄:

text
重複資料檢查結果
發現重複資料:P009

代表PHP已經可以辨識出相同的資料列。
四、今天完成的內容
今天完成了重複資料的檢查功能。
目前這個工具已經可以檢查:

  • 缺失值
  • 資料格式
  • 數值範圍
  • 重複資料
    接下來還需要處理不同資料之間的格式一致性,例如同一個欄位出現不同的表示方式,讓後面的資料清理功能可以更完整。

上一篇
使用PHP檢查數值範圍與異常值
下一篇
檢查資料一致性與標準化建議
系列文
Medical Data Cleaner 共 16 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言