Find & Replace
find_replace · rows · any
2026-09-23
กำลังประมวลผล…
find_replace · rows · any
2026-09-23
เทคนิคนี้คือเครื่องมือสารพัดประโยชน์สำหรับการแก้ข้อความ ตั้งแต่ลบคำนำหน้าที่ไม่ต้องการ ไปจนถึงเปลี่ยนรูปแบบด้วย Regex จุดสำคัญคือเลือกโหมดการจับคู่ให้ตรงกับงาน เพราะ contains แทนที่ทุกจุดที่พบ ส่วน exact แทนที่เฉพาะเมื่อค่าทั้งช่องตรงกันเป๊ะ
"บริษัท " หรือ " จำกัด"map_values อ่านง่ายกว่าและตรวจสอบย้อนหลังได้ดีกว่าextract_patterncontains กับคำสั้นมาก เช่น "a" จะแทนที่ในที่ที่ไม่ตั้งใจจำนวนมากexact เทียบทั้งค่า แล้วแทนที่ทั้งช่องเมื่อตรงcontains แทนที่ทุกตำแหน่งที่พบข้อความนั้นภายในค่าregex ใช้รูปแบบที่คุณเขียน โดยแทนที่ทุกตำแหน่งที่ตรงcaseSensitive ปิดอยู่เป็นค่าเริ่มต้น การค้นหาจึงไม่สนใจตัวพิมพ์ใหญ่เล็กfind ที่เป็นข้อความว่างจะไม่ทำอะไรเลย และ Regex ที่เขียนผิดจะถูกรายงานเป็นคำเตือนแทนที่จะทำให้ทั้ง Pipeline ล้ม| Parameter | Type | Default |
|---|---|---|
columns | string[] | — |
find | string | "" |
replace | string | "" |
match | exact | contains | regex | "contains" |
caseSensitive | boolean | false |
import json
import re
def find_replace(value, find, replace, match='contains', case_sensitive=False):
if value is None or find == '':
return value
text = str(value)
if match == 'exact':
matched = text == find if case_sensitive else text.lower() == find.lower()
replaced = replace if matched else text
elif match == 'regex':
replaced = re.sub(find, replace, text, flags=0 if case_sensitive else re.IGNORECASE)
else:
replaced = re.sub(re.escape(find), replace.replace('\\', '\\\\'), text, flags=0 if case_sensitive else re.IGNORECASE)
# ค่าที่ไม่ถูกแทนที่ต้องคงชนิดเดิม ไม่อย่างนั้นตัวเลขจะกลายเป็นข้อความ
return value if replaced == text else replaced
values = ['Bangkok', 'bangkok city', 'ไทย', None, 12]
result = [find_replace(value, 'bangkok', 'BKK') for value in values]
print(json.dumps(result, ensure_ascii=False))
คอลัมน์ company มีคำว่า "บริษัท " นำหน้าเกือบทุกแถว ตั้ง find เป็น "บริษัท " replace เป็นค่าว่าง และ match เป็น contains ตรวจ Preview ว่าค่าที่ไม่มีคำนำหน้ายังเหมือนเดิม จากนั้นตามด้วย trim_whitespace เพื่อเก็บช่องว่างที่เหลือ ถ้าต้องแก้หลายรูปแบบพร้อมกัน ให้ใช้ map_values แทนการทำซ้ำหลายขั้นตอน
ใช้ map_values เมื่อรู้ค่าปลายทางที่ต้องการทั้งชุด ใช้ extract_pattern เมื่ออยากได้ข้อความบางส่วนเป็นคอลัมน์ใหม่ และใช้ remove_special_chars เมื่อเป้าหมายคือลบอักขระทั้งกลุ่ม