Remove Extra Spaces
collapse_spaces · text · text
2026-09-23
กำลังประมวลผล…
collapse_spaces · text · text
2026-09-23
"John Smith" กับ "John Smith" ดูเหมือนกันบนหน้าจอ แต่เป็นคนละค่าเมื่อจับคู่หรือนับ เทคนิคนี้ยุบช่องว่างที่ติดกันให้เหลือช่องเดียว โดยนับรวมช่องว่างชนิดพิเศษอย่าง non-breaking space และ zero-width space ซึ่งพบบ่อยในข้อมูลที่คัดลอกมาจากเว็บหรือ Excel
\t, , และ trim_whitespace" A B " กลายเป็น " A B " ไม่ใช่ "A B" จึงมักใช้คู่กับ trim_whitespace เสมอ
| Parameter | Type | Default |
|---|---|---|
columns | string[] | — |
import json
import re
INNER = re.compile(r'[\s ]+')
def collapse_spaces(value):
if not isinstance(value, str):
return value
return INNER.sub(' ', value)
values = [' A B ', 'ไทย ไทย', None, ' ']
result = [collapse_spaces(value) for value in values]
print(json.dumps(result, ensure_ascii=False))
คอลัมน์ full_name มีค่าไม่ซ้ำ 4,180 ค่าจาก 4,000 แถว ซึ่งเป็นไปไม่ได้ถ้าชื่อสะอาด รัน collapse_spaces ตามด้วย trim_whitespace แล้วดูจำนวนค่าไม่ซ้ำอีกครั้ง ถ้ายังสูงอยู่ แปลว่าปัญหาไม่ได้อยู่ที่ช่องว่าง ให้ไปดูตัวพิมพ์และการสะกดด้วย Cluster Review
ใช้คู่กับ trim_whitespace เสมอ ใช้ unicode_normalize เมื่อสงสัยว่ามีอักขระที่มองไม่เห็นปนอยู่ และใช้ find_similar_values ต่อเมื่อค่าต่างกันมากกว่าเรื่องช่องว่าง