Remove Empty Rows
remove_empty_rows · rows · any
2026-09-23
กำลังประมวลผล…
remove_empty_rows · rows · any
2026-09-23
ไฟล์ Excel มักมีแถวว่างคั่นระหว่างส่วนต่าง ๆ หรือมีแถวท้ายไฟล์ที่เหลือแต่ช่องว่าง แถวเหล่านี้ทำให้จำนวนแถวผิดและกราฟเพี้ยน เทคนิคนี้ลบออกได้สองแบบ คือลบเฉพาะแถวที่ว่างทั้งแถว หรือลบแถวที่กรอกข้อมูลน้อยกว่าที่ยอมรับได้
threshold กับตารางที่หลายคอลัมน์ว่างได้ตามปกติ เพราะจะลบแถวที่ยังใช้ได้ทิ้งnull และข้อความที่มีแต่ช่องว่างคือไม่มีข้อมูลall_null ลบแถวที่นับได้ศูนย์threshold เก็บเฉพาะแถวที่สัดส่วนช่องที่กรอก หารด้วยจำนวนคอลัมน์ทั้งหมด ไม่น้อยกว่า minFilledRatio"-" หรือ "N/A" ยังนับว่ามีข้อมูล ให้รัน detect_null_like ก่อนถ้าต้องการให้นับเป็นว่าง| Parameter | Type | Default |
|---|---|---|
mode | all_null | threshold | "all_null" |
minFilledRatio | number | 0.5 |
import json
def filled_count(row):
return sum(1 for value in row.values() if value is not None and str(value).strip() != '')
def remove_empty_rows(rows, mode='all_null', min_filled_ratio=0.5):
if not rows:
return []
columns = len(rows[0])
if mode == 'all_null':
return [row for row in rows if filled_count(row) > 0]
return [row for row in rows if filled_count(row) / columns >= min_filled_ratio]
rows = [
{'a': 'A', 'b': 'ไทย', 'c': 1},
{'a': None, 'b': None, 'c': None},
{'a': '', 'b': ' ', 'c': None},
{'a': None, 'b': 'x', 'c': None},
]
result = {
'all_null': remove_empty_rows(rows, 'all_null'),
'threshold': remove_empty_rows(rows, 'threshold', 0.5),
}
print(json.dumps(result, ensure_ascii=False))
ไฟล์ยอดขายจาก Excel มี 1,204 แถว แต่มีเพียง 1,180 แถวที่เป็นข้อมูลจริง ที่เหลือคือแถวคั่นและแถวรวมยอด รัน remove_empty_rows แบบ all_null ก่อน แล้วดูว่าเหลือแถวแปลก ๆ อีกไหม แถวรวมยอดมักมีข้อมูลแค่สองสามช่อง จึงจัดการต่อด้วยโหมด threshold หรือ filter_rows
ใช้ detect_null_like ก่อนเพื่อให้ค่าที่แปลว่าว่างถูกนับถูกต้อง ใช้ remove_missing_rows เมื่อสนใจเฉพาะบางคอลัมน์ และใช้ drop_sparse_columns เมื่อปัญหาอยู่ที่คอลัมน์มากกว่าที่แถว