如何刪除 CSV 中的重複行
將檔案載入到 CSV Cleaner 中,先修剪空白,然後刪除重複的行。每行的第一次出現將被保留,後面的副本將被刪除,因此保留的資料的順序不會改變。
這兩個步驟的順序就是整個技巧。僅尾部空格不同的兩行不會向電腦重複,因此在修剪之前進行重複資料刪除會將兩行保留在原位,然後報告工作完成情況。
為什麼「相同」的行能夠在重複資料刪除中倖存下來
修剪直接解決第一個和最後一個問題。其他的需要你做出決定,這就是為什麼它們沒有默默地標準化的原因——例如,折疊大小寫對於電子郵件地址是正確的,對於產品代碼是錯誤的,並且工具無法區分哪一列是哪一列。
- 尾隨或前導空格。在電子表格中不可見,對比較具有決定性作用。
- 大小寫差異。 ann@example.com 和 Ann@example.com 是不同的字串,即使它們是同一個郵箱。
- 引用不同。 “Smith, John”和Smith\, John在解析之前可以攜帶相同的值和不同的位元組。
- 不間斷空格。從網頁或 PDF 複製貼上經常會用 U+00A0 取代普通空格,而且看起來並沒有什麼異常。
- 尾隨空列。一個導出寫入四個字段,另一個導出寫入四個字段和一個尾隨分隔符。
有效的順序
這些步驟中的每一步都是可單獨撤消的,直到最後二十個操作為止,因此嘗試一個步驟並撤消它是沒有成本的。
- 載入檔案並確認分隔符號和列數正確。對解析為一列的檔案重複資料刪除沒有任何用處。
- 修剪每個單元格上的空白。
- 如果匯出中有空行,請將其刪除,這樣它們就不會折疊成單一保留的空白。
- 刪除重複的行。
- 檢查之前和之後的行數。差別在於有多少重複項。
整行重複,而不是重複的鍵
這會刪除每列中相同的行。這與刪除共享鍵的行不同。
如果同一客戶以不同的註冊日期出現兩次,則這些不是重複的行 - 它們是碰巧共用名稱的兩個不同記錄。刪除一個就等於刪除數據,該工具不會憑猜測來執行此操作。
若要按鍵進行重複資料刪除,請減少定義該鍵的資料列的匯出,並對其進行重複資料刪除,然後將結果用作查找清單。或在電子表格或資料庫中進行連接,這就是此類決策所屬的地方。
對單列值進行重複資料刪除
如果您的實際問題是清單(電子郵件地址、SKU、URL)而不是表格,那麼文字工具包是更快的路線。它會刪除重複的行,修剪它們並對它們進行排序,並且它需要貼上而不是檔案。
此處適用相同的排序規則:先修剪,然後刪除重複。
工作範例:由三個匯出合併的郵件列表
三份匯出已連接成 4,812 行文件,其中包含「名稱」、「電子郵件」和「來源」欄位。某些聯絡人出現在多個來源中,且該檔案是透過複製貼上組合而成的,因此某些行具有尾隨空格。
立即刪除重複項報告稱刪除了 118 個重複項——對於三個重疊的清單來說,刪除的數量令人懷疑。
- 撤銷重複資料刪除。
- 修剪每個單元格上的空白。
- 再次刪除重複的行。
- 將行數與原始行數進行比較。
結果: 第二遍刪除的行比第一遍多得多,因為修剪使真正的重複項相同。共享電子郵件地址但「來源」列不同的行仍然正確地存在 - 它們不是相同的行,決定哪個來源獲勝是工具留給您的判斷。
開啟工具
刪除每列中相同的行,保留第一行。它不會猜測您打算保留兩個相似記錄中的哪一個。
這不包括什麼
- 僅刪除整行重複項。透過鍵列進行重複資料刪除不是該工具所做的事情。
- 案例意義重大。 ANN@example.com 和 ann@example.com 保留為兩行。
- 保留第一次出現的情況。沒有選擇保留最後一個。
- 整個檔案保存在記憶體中,上限為 50 MB。
- 撤銷僅限於最近 20 次操作。
- 預覽中僅顯示前 100 行,因此請透過行數而不是透過滾動來確認結果。