ไทย

ข้อมูลและสเปรดชีต · CSV สะอาดยิ่งขึ้น

วิธีการทำงานของการลบแถวที่ซ้ำกัน: การจับคู่แบบตรงทั้งหมด ช่องว่าง และขนาดตัวพิมพ์

· มันทำงานอย่างไร

csv การทำความสะอาดข้อมูล ซ้ำกัน

แถวตารางที่เหมือนกันสองแถวมารวมกัน ในขณะที่แถวที่มีระยะห่างต่างกันยังคงแยกจากกัน
ภาพประกอบเวกเตอร์ต้นฉบับ ToolAcre

สองแถวอาจดูเหมือนกันและยังคงไม่ตรงกันแบบไบต์ต่อไบต์ โพสต์นี้จะอธิบายว่า 'ซ้ำกัน' มีความหมายอย่างไรต่อเครื่องมือทำความสะอาด ช่องว่าง ขนาดตัวพิมพ์ และการจัดรูปแบบสร้างการจับคู่ที่ไม่ตรงกันได้อย่างไร และวิธีการเตรียมข้อมูลเพื่อให้การขจัดข้อมูลซ้ำซ้อนจับสิ่งที่คุณต้องการได้

'ลบรายการที่ซ้ำกัน' ทิ้งการซ้ำซ้อนไว้เบื้องหลัง — เหตุใดช่องว่างต่อท้ายหรือตัวพิมพ์ใหญ่จึงทำให้สองแถวแตกต่างกัน

การส่งออกผู้ติดต่อสามารถแสดงสองแถวที่ปรากฏเหมือนกัน ในขณะที่อีเมลหนึ่งรายการลงท้ายด้วยการเว้นวรรค หรือนามสกุลหนึ่งรายการใช้ตัวพิมพ์ใหญ่ ปุ่มทำซ้ำไม่ได้ใช้ความคล้ายคลึงกันของมนุษย์ ในหน้าที่จัดส่ง จะเปรียบเทียบค่าสตริงที่สมบูรณ์ของทุกๆ เซลล์ โดยที่ตัวพิมพ์และช่องว่างยังคงมีนัยสำคัญในขณะนั้น

นั่นอธิบายว่าทำไมการทำซ้ำที่ชัดเจนจึงยังคงอยู่หลังจากการคลิกครั้งแรก เครื่องมือนี้หลีกเลี่ยงการตัดสินใจที่มีความเสี่ยงมากขึ้น: การเปลี่ยนแปลงกรณีหรือปัญหาหรือการเพิกเฉยต่อฟิลด์ที่เลือกสามารถรวมเรกคอร์ดที่ดูเกี่ยวข้องเท่านั้นได้ ตรวจสอบแหล่งที่มา เลือกการทำให้เป็นมาตรฐานที่คุณต้องการจริง และดำเนินการลบทั้งหมดอีกครั้งหลังจากการแก้ไขเหล่านั้น

การเปรียบเทียบแบบตรงทั้งหมดคืออะไร - ทุกฟิลด์และทุกอักขระ รวมถึงรายการที่มองไม่เห็น เช่น ช่องว่างที่ไม่แยกและไบต์ BOM ที่หลงทาง

แต่ละแถวได้รับข้อมูลประจำตัวที่สร้างขึ้นจากเซลล์ทั้งหมด การใช้งานจะรวมอักขระเหล่านั้นด้วยอักขระว่างซึ่งไม่ใช่ข้อความ CSV ตามกฎหมาย เพื่อหลีกเลี่ยงข้อผิดพลาดทั่วไปที่เซลล์หนึ่งที่มีเครื่องหมายจุลภาคชนกับเซลล์สองเซลล์ที่แยกจากกัน ข้อมูลระบุตัวตนที่เหมือนกันอันที่สองถูกข้ามไป แถวแรกยังคงอยู่ไม่เปลี่ยนแปลง

โครงร่างกล่าวถึงช่องว่างที่ไม่แยกส่วนที่มองไม่เห็นและไบต์ BOM ที่หลงทางราวกับว่าทุกคนได้รับการดูแลเป็นพิเศษ การตัดแต่ง JavaScript สามารถลบช่องว่าง Unicode โดยรอบได้เมื่อคุณเลือก Trim แต่กฎ BOM ที่ชัดเจนของโปรแกรมแยกวิเคราะห์จะตัดเฉพาะ U+FEFF ที่จุดเริ่มต้นของไฟล์เท่านั้น มันไม่ได้สแกนทุกเซลล์เพื่อหาไบต์ที่ซ่อนอยู่โดยพลการ

การเปรียบเทียบแบบตรงทั้งหมดครอบคลุมสตริงของเซลล์ทั้งหมด เฉพาะไฟล์ชั้นนำ BOM เท่านั้นที่ถูกลบออกเป็นพิเศษ

เรื่องการสั่งซื้อ ตัดแต่งช่องว่างจะลบช่องว่างนำหน้าและต่อท้ายในทุกเซลล์ ในขณะที่ช่องว่างยุบยังเปลี่ยนช่องว่างภายในให้กลายเป็นช่องว่างธรรมดาหนึ่งช่อง การใช้อย่างใดอย่างหนึ่งก่อนการลบซ้ำจะทำให้แถวที่แตกต่างกันก่อนหน้านี้เท่ากัน การเรียกใช้การลบจะรักษาทั้งสองอย่างไว้ก่อน เนื่องจากสตริงดั้งเดิมต่างกัน

แผงควบคุมไม่เปิดเผยการพับเคส, การซ่อมแซม Windows-1252 หรือการทำให้เป็นมาตรฐานของ Unicode แม้ว่าไลบรารีพื้นฐานจะมีตัวเลือกสำหรับการเปรียบเทียบโดยไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ แต่เส้นทางจะเรียกใช้ฟังก์ชันที่แน่นอนที่เป็นค่าเริ่มต้น การกล่าวอ้างว่าหน้านี้กำหนดขนาดตัวพิมพ์หรือการเข้ารหัสให้เป็นมาตรฐานจึงเกินการควบคุมที่ผู้เยี่ยมชมสามารถใช้ได้จริง

ตัดหรือยุบช่องว่างก่อน แผงไม่ได้ทำให้การเข้ารหัสตัวพิมพ์หรือแบบเดิมเป็นปกติ

ความเท่าเทียมกันทั้งแถวไม่เหมือนกับการระบุลูกค้ารายเดียว สองแถวที่แชร์อีเมลแต่มีการประทับเวลาที่ต่างกันจะถูกเก็บไว้ เนื่องจากอย่างน้อยหนึ่งเซลล์แตกต่างกัน ไลบรารีสามารถเปรียบเทียบคอลัมน์ที่เลือกได้ แต่หน้าที่ซ้ำกันที่เผยแพร่จะไม่เปิดเผยตัวเลือกคีย์-คอลัมน์ ดังนั้นจึงไม่สามารถตัดสินคู่นั้นได้

นี่เป็นขอบเขตอันมีค่ามากกว่าที่จะขาดหายไป การเลือกเรกคอร์ดใหม่ล่าสุด การรวมฟิลด์ หรือการใช้นามแฝงเหมือนกับบุคคลเดียวจำเป็นต้องมีกฎเกณฑ์ทางธุรกิจ และบ่อยครั้งต้องมีเส้นทางการตรวจสอบ ส่งออกข้อขัดแย้งเหล่านั้นเพื่อตรวจสอบ หรือใช้เวิร์กโฟลว์การผสานที่บันทึกไว้ของระบบปลายทาง แทนที่จะปลอมแปลงเป็นรายการที่ซ้ำกันทุกประการ

ลำดับและความอยู่รอด — สำเนาใดจะถูกเก็บไว้เมื่อมีการลบรายการที่ซ้ำกัน และเหตุใดจึงมีความสำคัญสำหรับข้อมูล 'อัปเดตล่าสุด'

เมื่อมีการทำซ้ำทุกประการ การปรากฏครั้งแรกยังคงอยู่และสำเนาในภายหลังจะถูกลบออก แถวที่รอดตายจะรักษาลำดับเดิมไว้ หากเวอร์ชันที่ใหม่กว่าปรากฏขึ้นในภายหลังแต่มีความแตกต่างในฟิลด์เดียว เวอร์ชันนั้นจะไม่ซ้ำกันและยังคงอยู่ ถ้าเป็นไบต์ต่อไบต์เท่ากันที่ระดับเซลล์ การเก็บรักษาสำเนาใดสำเนาหนึ่งไว้จะทำให้ได้ข้อมูลเดียวกัน

กฎการคัดลอกครั้งแรกยังคงมีความสำคัญในการปฏิบัติงานเมื่อลำดับแถวบันทึกแหล่งที่มาภายนอกเซลล์ รักษาการส่งออกที่ยังไม่ถูกแตะต้องก่อนทำความสะอาด และตรวจสอบจำนวนหลังจากดำเนินการแต่ละอย่าง สแต็กการเลิกทำของ ToolAcre จะรักษาการเปลี่ยนแปลงไว้ 20 รูปแบบในแท็บปัจจุบัน แต่ต้นฉบับที่ดาวน์โหลดไว้จะเป็นข้อมูลอ้างอิงที่คงทนหากเซสชั่นปิดลง

ตัวอย่างที่ใช้งานได้ — การส่งออกผู้ติดต่อที่มีข้อมูลซ้ำกันเกือบหมด ทำให้เป็นมาตรฐาน ดังนั้นการขจัดข้อมูลซ้ำซ้อนที่แม่นยำจึงจับได้ โดยมีแถวที่ยังต้องมีการตรวจสอบโดยมนุษย์อยู่ในรายการ

สร้างการทดสอบเล็กๆ ด้วย Ada@example.com, Ada ในหนึ่งแถว, สองเซลล์ที่เหมือนกันทุกประการในหนึ่งวินาที และ ada@example.com บวก Ada ตามด้วยช่องว่างในหนึ่งในสาม การลบที่แน่นอนจะดรอปเฉพาะแถวที่สองเท่านั้น การตัดจะลบช่องว่างต่อท้าย แต่อีเมลตัวพิมพ์เล็กยังคงแยกแถวที่สามไว้

ผลลัพธ์ดังกล่าวทำให้ความแน่นอนทางกลไกแตกต่างจากการตัดสินของมนุษย์ หากทราบว่าที่อยู่ในระบบของคุณไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ให้ใช้กฎนั้นที่อื่นและบันทึกไว้ หลักฐานของตัวทำความสะอาดนั้นง่ายกว่า: มันสามารถพิสูจน์ได้ว่าแถวอาร์เรย์ที่เหมือนกันนั้นถูกลดขนาดลงจนเหลือเพียงการเกิดขึ้นครั้งแรกโดยไม่ต้องเปลี่ยนค่าที่เก็บไว้

สิ่งนี้ไม่ครอบคลุมถึง - การจับคู่ที่ไม่ชัดเจน การยอมรับการพิมพ์ผิด และการรวมบันทึกที่ขัดแย้งกัน

ชื่อที่ไม่ชัดเจน การยอมรับการพิมพ์ผิด การจับคู่การออกเสียง และการรวมข้อขัดแย้งอยู่นอกเหนือการดำเนินการนี้ ไม่ทราบว่า “โรเบิร์ต” และ “บ๊อบ” อาจหมายถึงคนๆ เดียว และไม่ได้ให้คะแนนที่อยู่สองรายการสำหรับความคล้ายคลึงกัน เทคนิคเหล่านั้นสามารถสร้างผลบวกลวงและต้องการบริบทที่ไม่มีในการส่งออกแบบเรียบ

การขจัดข้อมูลซ้ำซ้อนของคีย์คอลัมน์ก็หายไปจากหน้านี้ แม้ว่าจะมีการสนับสนุนในฟังก์ชันระดับล่างก็ตาม บทความควรอธิบายเส้นทางที่ผู้อ่านสามารถใช้ได้ ไม่ใช่พารามิเตอร์แฝงที่ไม่มีการควบคุม สำหรับการแก้ไขข้อมูลระบุตัวตน ให้เลือกกระบวนการตรวจสอบที่สร้างขึ้นตามวัตถุประสงค์โดยสามารถมองเห็นหลักฐานการจับคู่และกฎของผู้รอดชีวิตได้

การขจัดข้อมูลซ้ำซ้อนจะดีพอๆ กับการทำให้เป็นมาตรฐานก่อนหน้านั้นเท่านั้น — วิธี ToolAcre CSV การลบซ้ำของ Cleaner เหมาะสมอย่างไรหลังจากการเข้ารหัสและการซ่อมแซมส่วนหัว

ลำดับที่เชื่อถือได้ของ ToolAcre ได้รับการตรวจสอบ ปรับช่องว่างที่เลือกให้เป็นมาตรฐาน จากนั้นลบการทำซ้ำที่แน่นอน การซ่อมแซมการเข้ารหัสและการซ่อมแซมส่วนหัวอัตโนมัติไม่ได้ซ่อนอยู่ในขั้นตอนเบื้องต้น parser จะลบ UTF-8 BOM นำหน้า ตรวจพบตัวคั่น และรายงานปัญหาเชิงโครงสร้าง มันไม่ได้ตีความการเข้ารหัสอักขระที่เสียหายอีกครั้ง

หลังจากลบออก ให้เปรียบเทียบจำนวนแถวและดูตัวอย่างผู้รอดชีวิตก่อนดาวน์โหลด สิ่งที่หายไปนั้นมีความเท่าเทียมกันในทุกเซลล์ภายใต้สายอักขระในขณะนั้น สิ่งที่เหลืออยู่อาจรวมถึงข้อมูลที่เกือบจะซ้ำกันอย่างถูกต้องตามกฎหมาย และการเก็บบันทึกที่ไม่แน่นอนเหล่านั้นไว้จะปลอดภัยกว่าการรวมข้อมูลลูกค้าอย่างเงียบๆ บนสมมติฐาน