Change Case
change_case · text · text
2026-09-23
กำลังประมวลผล…
change_case · text · text
2026-09-23
"BANGKOK", "bangkok" และ "Bangkok" เป็นสามค่าเมื่อนับ แต่เป็นเมืองเดียวกันสำหรับคน เทคนิคนี้จัดตัวพิมพ์ให้เป็นแบบเดียวกันทั้งคอลัมน์ ห้าโหมดครอบคลุมทั้งการทำให้เล็กทั้งหมดเพื่อจับคู่ และการทำ Title Case เพื่อแสดงผล
aB12 หรือค่า hash และ base64iPhone, eBay — title จะทำให้เพี้ยนupper และ lower แปลงทั้งค่า ส่วน capitalize ทำให้อักษรแรกใหญ่และที่เหลือเล็กtitle ทำให้อักษรแรกของทุกคำใหญ่ (นับหลังช่องว่าง - ' " และวงเล็บ) ส่วน sentence ทำเฉพาะต้นประโยคหลัง . ! ?| Parameter | Type | Default |
|---|---|---|
columns | string[] | — |
mode | upper | lower | capitalize | title | sentence | "lower" |
import json
import re
def change_case(value, mode='lower'):
if not isinstance(value, str):
return value
if mode == 'upper':
return value.upper()
if mode == 'lower':
return value.lower()
if mode == 'capitalize':
return value[:1].upper() + value[1:].lower()
if mode == 'title':
return re.sub(r"(^|[\s\-'\"(])([a-z])", lambda m: m.group(1) + m.group(2).upper(), value.lower())
return re.sub(r'(^\s*|[.!?]\s+)([a-z])', lambda m: m.group(1) + m.group(2).upper(), value.lower())
values = ['bangkok co., ltd', 'ไทย land', None, 12]
result = [change_case(value, 'title') for value in values]
print(json.dumps(result, ensure_ascii=False))
คอลัมน์ country มี THAILAND, Thailand และ thailand ปนกัน เลือกโหมด title เพื่อให้เหลือ Thailand ค่าเดียว แล้วตรวจ Preview ว่ามีค่าที่ไม่ควรเปลี่ยนติดมาด้วยไหม เช่น USA ที่จะกลายเป็น Usa — ถ้ามี ให้ใช้ map_values จัดการค่าเฉพาะกลุ่มนั้นแทน
ใช้ trim_whitespace ก่อนเพื่อไม่ให้ช่องว่างหลอกการตัดคำ ใช้ map_values เมื่อค่าต้องการชื่อมาตรฐานที่ไม่ใช่แค่เรื่องตัวพิมพ์ และใช้ clean_headers สำหรับชื่อคอลัมน์แทนที่จะใช้เทคนิคนี้