前幾天已經完成缺失值、格式和數值範圍的檢查,今天要處理另一個常見的資料問題:重複資料。
如果同一筆資料被重複記錄,之後進行統計或分析時,可能會讓資料筆數產生誤差,因此也需要在資料清理的過程中把它找出來。
一、建立重複資料
在前幾天建立的測試資料中,我特別放入了一筆重複資料。
其中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已經可以辨識出相同的資料列。
四、今天完成的內容
今天完成了重複資料的檢查功能。
目前這個工具已經可以檢查: