รายงานวิเคราะห์ข้อมูล ThaiEDA

สร้างโดย ThaiEDA v2.0.0 · 150 จำนวนแถว × 7 จำนวนคอลัมน์
วิธีอ่านรายงานนี้: เริ่มจากบทสรุปด้านบน แล้วดูสิ่งที่ควรทำก่อน แล้วค่อยเจาะรายละเอียดแต่ละคอลัมน์
ประเภทข้อมูลที่ตรวจพบ
ข้อมูลทะเบียน/มาสเตอร์
ข้อมูลนี้เป็นรายการ entity พร้อมคุณลักษณะ ควรเน้นความครบถ้วนและความไม่ซ้ำของระเบียน
ภาษาข้อมูลที่ตรวจพบ ผสม (ไทย + อังกฤษ)
ผลกระทบต่อการวิเคราะห์: ข้อมูลผสมไทย+อังกฤษ ควรตรวจคุณภาพและทำความสะอาดทั้งสองภาษา
ควรดูอะไรเป็นพิเศษ
  • ตรวจ completeness ของ attribute สำคัญ
  • ตรวจ uniqueness ของรหัส/คีย์หลัก
  • ดู category distribution เพื่อหา master data ที่ผิดรูปแบบหรือกระจุกตัว
  • ตรวจทั้งกติกาภาษาไทยและอังกฤษ เพราะข้อมูลมีสองภาษา
  • แยกคอลัมน์ไทย/อังกฤษก่อนทำ text analytics หรือ tokenization
  • ตรวจ พ.ศ., เลขไทย, encoding และรูปแบบวันที่ทั้งสองภาษา

คำแนะนำเฉพาะข้อมูลไทย

  • ตรวจทั้งกติกาภาษาไทยและอังกฤษ เพราะข้อมูลมีสองภาษา
  • แยกคอลัมน์ไทย/อังกฤษก่อนทำ text analytics หรือ tokenization
  • ตรวจ พ.ศ., เลขไทย, encoding และรูปแบบวันที่ทั้งสองภาษา

2. สำคัญที่สุด

1
🟡 เตือน email
email ใช้ข้อความแทนค่าว่าง — ควรแปลงเป็น missing จริง เพื่อให้รายงานและโมเดลตีความถูก
Found 50 placeholder values ('-', 'N/A', 'ไม่มี') that should be NaN
ผลกระทบ 33.3%
2
🟡 เตือน gender
gender ใช้ข้อความแทนค่าว่าง — ควรแปลงเป็น missing จริง เพื่อให้รายงานและโมเดลตีความถูก
Found 18 placeholder values ('-', 'N/A', 'ไม่มี') that should be NaN
ผลกระทบ 12.0%
3
🟡 เตือน signup_source
signup_source ใช้ข้อความแทนค่าว่าง — ควรแปลงเป็น missing จริง เพื่อให้รายงานและโมเดลตีความถูก
Found 14 placeholder values ('-', 'N/A', 'ไม่มี') that should be NaN
ผลกระทบ 9.3%
4
🟡 เตือน thai_id
แปลงเป็นตัวเลขแล้วตรวจค่าที่แปลงไม่ได้ (ค่าแทน เช่น 'N/A', '-')
Column is 80% numeric but 30 value(s) (20.0%) are non-numeric strings.
ผลกระทบ 20.0%
5
🟡 เตือน fullname
ใช้การ normalize ข้อความ (เช่น pythainlp.util.normalize) ก่อนวิเคราะห์
Text normalization issues found (repeated-char spam). These cause duplicate-looking but unequal strings.
ผลกระทบ 0.67%
บทสรุปผู้บริหาร
ข้อมูลใช้ต่อได้ แต่ควรตรวจจุดที่เตือนก่อนวิเคราะห์เชิงลึก
ชุดข้อมูลมี 150 แถว × 7 คอลัมน์ พบปัญหาคุณภาพ 4 ข้อ พบความผิดปกติ 2 จุดใน 2 คอลัมน์ ข้อมูลใช้งานได้ แต่ควรตรวจสอบจุดที่เตือนก่อนวิเคราะห์เชิงลึก
  • มีข้อมูล 150 แถว × 7 คอลัมน์
  • ค่าว่าง 0.00% ของข้อมูลทั้งหมด
  • แถวซ้ำ 0 แถว (0.00%)
  • พบข้อค้นพบที่ควรดู 10 เรื่อง
  • มี insight เชิงธุรกิจ 1 เรื่อง

สิ่งที่ควรทำก่อน

1
🟡 เตือน placeholder_values
คอลัมน์ 'email': พบ 50 ค่าที่ใช้แทน NaN ('-', 'N/A', 'ไม่มี') — ควรแปลงเป็น NaN (พบ 50 แถว, 33.3%)
แล้วไงต่อ? แทนที่ค่า placeholder ด้วย NaN ก่อนวิเคราะห์ (ใช้ coerce_numeric_column หรือ replace)
2
🟡 เตือน พบปัญหาการ normalize ข้อความ
คอลัมน์ 'fullname': พบปัญหาการ normalize ข้อความ (repeated-char spam) ทำให้สตริงที่ดูเหมือนกันแต่ไม่เท่ากันจริง (พบ 1 แถว, 0.7%)
แล้วไงต่อ? ใช้การ normalize ข้อความ (เช่น pythainlp.util.normalize) ก่อนวิเคราะห์
3
🟡 เตือน พบการปนชนิดข้อมูล (ตัวเลข/ข้อความ)
คอลัมน์ 'thai_id': คอลัมน์เป็นตัวเลข 80% แต่มี 30 ค่า (20.0%) ที่เป็นสตริงไม่ใช่ตัวเลข (30 รายการ, 20.0%)
แล้วไงต่อ? แปลงเป็นตัวเลขแล้วตรวจค่าที่แปลงไม่ได้ (ค่าแทน เช่น 'N/A', '-')
4
🟡 เตือน การกระจายเบ้มาก
คอลัมน์ 'age' มีการกระจายเบ้ขวา (หางยาวด้านมาก) (skew=2.56) — ค่าเฉลี่ยอาจไม่สะท้อนค่ากลางที่แท้จริง
แล้วไงต่อ? พิจารณาแปลง 'age' ด้วย log/sqrt/Box-Cox ก่อนวิเคราะห์หรือสร้างโมเดล
5
🔵 ข้อมูล กลุ่ม 'Organic' โดดเด่นใน 'age' (ตาม 'signup_source')
กลุ่ม 'Organic' มีค่าเฉลี่ย 'age' สูงสุดที่ 287.9 — สูงกว่ากลุ่มรอง 2.4 เท่า (จัดกลุ่มตาม 'signup_source')
แล้วไงต่อ? ตรวจสอบว่าเหตุใดกลุ่ม 'Organic' จึงโดดเด่น และพิจารณาใช้เป็นจุดโฟกัสในการวิเคราะห์/ตัดสินใจ

ภาพรวม

จำนวนแถว
150
จำนวนคอลัมน์
7
เซลล์ทั้งหมด
1,050
เซลล์ที่ว่าง
0 (0.0%)
แถวซ้ำ
0

ประเภทคอลัมน์

ตัวระบุ (ID) 2หมวดหมู่ 2ข้อความภาษาไทย 1ตัวเลข 1ข้อความผสม 1

คอลัมน์ที่ควรระวัง

🟡 เตือน email
  • พบ 50 ค่าที่ใช้แทน NaN ('-', 'N/A', 'ไม่มี') — ควรแปลงเป็น NaN
🟡 เตือน thai_id
  • คอลัมน์เป็นตัวเลข 80% แต่มี 30 ค่า (20.0%) ที่เป็นสตริงไม่ใช่ตัวเลข
🟡 เตือน gender
  • พบ 18 ค่าที่ใช้แทน NaN ('-', 'N/A', 'ไม่มี') — ควรแปลงเป็น NaN
🟡 เตือน signup_source
  • พบ 14 ค่าที่ใช้แทน NaN ('-', 'N/A', 'ไม่มี') — ควรแปลงเป็น NaN
🟡 เตือน fullname
  • พบปัญหาการ normalize ข้อความ (repeated-char spam) ทำให้สตริงที่ดูเหมือนกันแต่ไม่เท่ากันจริง
🔵 ข้อมูล age
  • พบค่าผิดปกติเชิงตัวเลข 16 ค่า ด้วยวิธี modified_z_score (MAD) (ความเบ้ของการกระจาย ≈ 2.56) การกระจายแบบหางยาวมักมีค่าสุดขั้วทางธุรกิจที่ถูกต้อง จึงไม่ใช่ defect ของข้อมูลเสมอไป

การกระจายและสหสัมพันธ์

แผนภาพกล่อง
box plot
กราฟนี้บอกอะไรเรา: จุดที่หลุดจากกล่องคือค่าที่ควรตรวจว่าเป็น outlier จริงหรือไม่
แผนภาพไวโอลิน
violin plot
กราฟนี้บอกอะไรเรา: ดูรูปทรงการกระจายว่าเบ้ มีหลายกลุ่ม หรือกระจุกตัวตรงไหน

ข้อมูลที่ขาดหาย

✓ ไม่มีข้อมูลที่ขาดหาย

ข้อค้นพบสำคัญ 6 เตือน 4 ข้อมูล

🟡 เตือน คุณภาพ placeholder_values
คอลัมน์ 'email': พบ 50 ค่าที่ใช้แทน NaN ('-', 'N/A', 'ไม่มี') — ควรแปลงเป็น NaN (พบ 50 แถว, 33.3%)
แล้วไงต่อ? แทนที่ค่า placeholder ด้วย NaN ก่อนวิเคราะห์ (ใช้ coerce_numeric_column หรือ replace)
🟡 เตือน คุณภาพ placeholder_values
คอลัมน์ 'gender': พบ 18 ค่าที่ใช้แทน NaN ('-', 'N/A', 'ไม่มี') — ควรแปลงเป็น NaN (พบ 18 แถว, 12.0%)
แล้วไงต่อ? แทนที่ค่า placeholder ด้วย NaN ก่อนวิเคราะห์ (ใช้ coerce_numeric_column หรือ replace)
🟡 เตือน คุณภาพ placeholder_values
คอลัมน์ 'signup_source': พบ 14 ค่าที่ใช้แทน NaN ('-', 'N/A', 'ไม่มี') — ควรแปลงเป็น NaN (พบ 14 แถว, 9.3%)
แล้วไงต่อ? แทนที่ค่า placeholder ด้วย NaN ก่อนวิเคราะห์ (ใช้ coerce_numeric_column หรือ replace)
🟡 เตือน คุณภาพ พบปัญหาการ normalize ข้อความ
คอลัมน์ 'fullname': พบปัญหาการ normalize ข้อความ (repeated-char spam) ทำให้สตริงที่ดูเหมือนกันแต่ไม่เท่ากันจริง (พบ 1 แถว, 0.7%)
แล้วไงต่อ? ใช้การ normalize ข้อความ (เช่น pythainlp.util.normalize) ก่อนวิเคราะห์
🟡 เตือน โครงสร้าง พบการปนชนิดข้อมูล (ตัวเลข/ข้อความ)
คอลัมน์ 'thai_id': คอลัมน์เป็นตัวเลข 80% แต่มี 30 ค่า (20.0%) ที่เป็นสตริงไม่ใช่ตัวเลข (30 รายการ, 20.0%)
แล้วไงต่อ? แปลงเป็นตัวเลขแล้วตรวจค่าที่แปลงไม่ได้ (ค่าแทน เช่น 'N/A', '-')
🟡 เตือน การกระจาย การกระจายเบ้มาก
คอลัมน์ 'age' มีการกระจายเบ้ขวา (หางยาวด้านมาก) (skew=2.56) — ค่าเฉลี่ยอาจไม่สะท้อนค่ากลางที่แท้จริง
แล้วไงต่อ? พิจารณาแปลง 'age' ด้วย log/sqrt/Box-Cox ก่อนวิเคราะห์หรือสร้างโมเดล
🔵 ข้อมูล ความผิดปกติ พบค่าผิดปกติเชิงตัวเลข (outlier)
คอลัมน์ 'age': พบค่าผิดปกติเชิงตัวเลข 16 ค่า ด้วยวิธี modified_z_score (MAD) (ความเบ้ของการกระจาย ≈ 2.56) การกระจายแบบหางยาวมักมีค่าสุดขั้วทางธุรกิจที่ถูกต้อง จึงไม่ใช่ defect ของข้อมูลเสมอไป (16 รายการ, 10.7%)
แล้วไงต่อ? ตรวจสอบค่าเหล่านี้ — อาจเป็นการกรอกผิด หน่วยไม่ตรงกัน ค่าสุดขั้วจริง หรือค่าสุดขั้วทางธุรกิจที่ถูกต้อง
🔵 ข้อมูล ข้อความ คอลัมน์ข้อความมีค่าไม่ซ้ำสูง
คอลัมน์ 'fullname' มีค่าไม่ซ้ำ 100% (150 จาก 150 แถว) — อาจเป็น ID หรือข้อความอิสระ ไม่ใช่ตัวแปรหมวดหมู่
แล้วไงต่อ? ตรวจสอบว่าคอลัมน์ 'fullname' ควรใช้เป็น ID/ข้อความอิสระ และไม่นำไปจัดกลุ่ม (groupby) เป็นหมวดหมู่
🔵 ข้อมูล คุณภาพ สรุปการทำความสะอาดข้อมูล
ทำความสะอาดแล้วรวม 143 เซลล์ — handle_missing_values 124 เซลล์, remove_duplicate_rows 10 เซลล์, ลดอักขระซ้ำเกิน 9 เซลล์
แล้วไงต่อ? ตรวจสอบรายละเอียดก่อน/หลังในส่วน 'การทำความสะอาด' ของรายงาน
🔵 ข้อมูล เชิงธุรกิจ กลุ่ม 'Organic' โดดเด่นใน 'age' (ตาม 'signup_source')
กลุ่ม 'Organic' มีค่าเฉลี่ย 'age' สูงสุดที่ 287.9 — สูงกว่ากลุ่มรอง 2.4 เท่า (จัดกลุ่มตาม 'signup_source')
แล้วไงต่อ? ตรวจสอบว่าเหตุใดกลุ่ม 'Organic' จึงโดดเด่น และพิจารณาใช้เป็นจุดโฟกัสในการวิเคราะห์/ตัดสินใจ

ข้อค้นพบจากการวิเคราะห์คอลัมน์ผสม (1)

กลุ่มโดดเด่น กลุ่ม 'Organic' โดดเด่นใน 'age' (ตาม 'signup_source') จัดกลุ่มตาม: signup_source · ตัววัด: age · mean
กลุ่ม 'Organic' มีค่าเฉลี่ย 'age' สูงสุดที่ 287.9 — สูงกว่ากลุ่มรอง 2.4 เท่า (จัดกลุ่มตาม 'signup_source')
กราฟนี้บอกอะไรเรา
insight chart
กลุ่มค่า
Organic287.91
N/A120.9
Google114.81
แล้วไงต่อ? ตรวจสอบว่าเหตุใดกลุ่ม 'Organic' จึงโดดเด่น และพิจารณาใช้เป็นจุดโฟกัสในการวิเคราะห์/ตัดสินใจ

ปัญหาคุณภาพข้อมูล (4)

🟡 เตือนemail · placeholder_values
จำนวน: 50 (33.3%)
พบ 50 ค่าที่ใช้แทน NaN ('-', 'N/A', 'ไม่มี') — ควรแปลงเป็น NaN
ไม่ระบุ
แล้วไงต่อ? แทนที่ค่า placeholder ด้วย NaN ก่อนวิเคราะห์ (ใช้ coerce_numeric_column หรือ replace)
ดูเพิ่มเติม
Found 50 placeholder values ('-', 'N/A', 'ไม่มี') that should be NaN — Replace placeholder values with NaN before analysis
🟡 เตือนgender · placeholder_values
จำนวน: 18 (12.0%)
พบ 18 ค่าที่ใช้แทน NaN ('-', 'N/A', 'ไม่มี') — ควรแปลงเป็น NaN
ไม่ระบุ
แล้วไงต่อ? แทนที่ค่า placeholder ด้วย NaN ก่อนวิเคราะห์ (ใช้ coerce_numeric_column หรือ replace)
ดูเพิ่มเติม
Found 18 placeholder values ('-', 'N/A', 'ไม่มี') that should be NaN — Replace placeholder values with NaN before analysis
🟡 เตือนsignup_source · placeholder_values
จำนวน: 14 (9.3%)
พบ 14 ค่าที่ใช้แทน NaN ('-', 'N/A', 'ไม่มี') — ควรแปลงเป็น NaN
-N/A
แล้วไงต่อ? แทนที่ค่า placeholder ด้วย NaN ก่อนวิเคราะห์ (ใช้ coerce_numeric_column หรือ replace)
ดูเพิ่มเติม
Found 14 placeholder values ('-', 'N/A', 'ไม่มี') that should be NaN — Replace placeholder values with NaN before analysis
🟡 เตือนfullname · normalization
จำนวน: 1 (0.67%)
พบปัญหาการ normalize ข้อความ (repeated-char spam) ทำให้สตริงที่ดูเหมือนกันแต่ไม่เท่ากันจริง
นางสาว สมศรี ใจงาม 111
แล้วไงต่อ? ใช้การ normalize ข้อความ (เช่น pythainlp.util.normalize) ก่อนวิเคราะห์
ดูเพิ่มเติม
Text normalization issues found (repeated-char spam). These cause duplicate-looking but unequal strings. — Apply Unicode normalization (e.g. pythainlp.util.normalize) before analysis.

ความผิดปกติ (2)

🟡 เตือนthai_id · type_mixing รูปแบบ
จำนวน: 30 (20.0%)
คอลัมน์เป็นตัวเลข 80% แต่มี 30 ค่า (20.0%) ที่เป็นสตริงไม่ใช่ตัวเลข
ไม่ระบุไม่ระบุไม่ระบุไม่ระบุไม่ระบุ
แล้วไงต่อ? แปลงเป็นตัวเลขแล้วตรวจค่าที่แปลงไม่ได้ (ค่าแทน เช่น 'N/A', '-')
ดูเพิ่มเติม
Column is 80% numeric but 30 value(s) (20.0%) are non-numeric strings. — Coerce to numeric and inspect non-parseable values (placeholders like 'N/A', '-').
🔵 ข้อมูลage · numeric_outliers เชิงสถิติ
จำนวน: 16 (10.67%)
พบค่าผิดปกติเชิงตัวเลข 16 ค่า ด้วยวิธี modified_z_score (MAD) (ความเบ้ของการกระจาย ≈ 2.56) การกระจายแบบหางยาวมักมีค่าสุดขั้วทางธุรกิจที่ถูกต้อง จึงไม่ใช่ defect ของข้อมูลเสมอไป
999999999999999
แล้วไงต่อ? ตรวจสอบค่าเหล่านี้ — อาจเป็นการกรอกผิด หน่วยไม่ตรงกัน ค่าสุดขั้วจริง หรือค่าสุดขั้วทางธุรกิจที่ถูกต้อง
ดูเพิ่มเติม
16 numeric outlier(s) detected using the modified_z_score (MAD) method (distribution skew ≈ 2.56). Heavy-tailed distributions often contain valid business extremes; treat this as context, not automatically as a data defect. — Inspect these values; they may be data-entry errors, units mismatch, genuine extremes, or valid business extremes.

การทำความสะอาด (6)

รวมเซลล์ที่เปลี่ยน: 143 · การดำเนินการที่มีผลมากสุด: handle_missing_values (แทน 50 ค่าว่างด้วย 'ไม่ระบุ' — 50)
คอลัมน์การดำเนินการแถวที่ได้รับผลกระทบก่อน → หลัง
(entire df)remove_duplicate_rows
ลบแถวซ้ำ 10 แถว
10
agehandle_missing_values
แทน 30 ค่าว่างด้วย 0 (numeric)
30
emailhandle_missing_values
แทน 50 ค่าว่างด้วย 'ไม่ระบุ'
50
genderhandle_missing_values
แทน 14 ค่าว่างด้วย 'ไม่ระบุ'
14
thai_idhandle_missing_values
แทน 30 ค่าว่างด้วย 'ไม่ระบุ'
30
customer_idfix_repeated_chars
ลดการซ้ำอักขระที่เกิน 3 ตัว (เช่น 55555 → 555, ๆๆๆ → ๆ)
9CUST-00001CUST-0001CUST-00002CUST-0002CUST-00003CUST-0003CUST-00004CUST-0004CUST-00005CUST-0005

คำแนะนำการทำความสะอาด (0)

✓ ไม่มีคำแนะนำการทำความสะอาด

รายละเอียดคอลัมน์

ส่วนนี้ซ่อนไว้เป็นรายคอลัมน์เพื่อลดความรก เปิดเฉพาะคอลัมน์ที่ต้องการตรวจละเอียด

customer_idตัวระบุ (ID)มีกราฟ
ไม่ว่าง150
เซลล์ที่ว่าง0
ไม่ซ้ำ150
ความถี่ของค่า
value counts

ค่าที่พบบ่อย

CUST-00011
CUST-00021
CUST-00031
CUST-00041
CUST-00051
CUST-00061
CUST-00071
CUST-00081
CUST-00091
CUST-000101
fullnameข้อความภาษาไทยมีกราฟ
เครื่องมือตัดคำpythainlp:newmmจำนวนอักขระเฉลี่ย19.78
จำนวนคำเฉลี่ย6.0จำนวนอักขระมัธยฐาน19.5
คำทั้งหมด900คำไม่ซ้ำ159
อักขระน้อยสุด17อักขระมากสุด22

คู่คำที่พบบ่อย: นางสาว สม (75) สม ศรี (75) ศรี ใจ (75) ใจ งาม (75) นาย สม (75) สม ชาย (75) ชาย รัก (75) รัก ดี (75)

คำที่พบบ่อย
top tokens
การกระจายความยาว
length histogram
เมฆคำ
word cloud
ageตัวเลขมีกราฟ
ไม่ว่าง150
เซลล์ที่ว่าง0
ไม่ซ้ำ7
ค่าเฉลี่ย124.5933
ส่วนเบี่ยงเบนมาตรฐาน303.4933
ต่ำสุด0.0
สูงสุด999.0
การแจกแจง
value distribution
emailข้อความผสมมีกราฟ
เครื่องมือตัดคำpythainlp:newmmจำนวนอักขระเฉลี่ย13.85
จำนวนคำเฉลี่ย2.0จำนวนอักขระมัธยฐาน17.0
คำทั้งหมด300คำไม่ซ้ำ103
อักขระน้อยสุด7อักขระมากสุด18

คู่คำที่พบบ่อย: user _1@gmail.com (1) user _2@gmail.com (1) user _4@gmail.com (1) user _5@gmail.com (1) user _7@gmail.com (1) user _8@gmail.com (1) user _10@gmail.com (1) user _11@gmail.com (1)

คำที่พบบ่อย
top tokens
การกระจายความยาว
length histogram
เมฆคำ
word cloud
genderหมวดหมู่มีกราฟ
ไม่ว่าง150
เซลล์ที่ว่าง0
ไม่ซ้ำ4
ความถี่ของค่า
value counts

ค่าที่พบบ่อย

หญิง60
ชาย53
LGBTQ+19
ไม่ระบุ18
signup_sourceหมวดหมู่มีกราฟ
ไม่ว่าง150
เซลล์ที่ว่าง0
ไม่ซ้ำ5
ความถี่ของค่า
value counts

ค่าที่พบบ่อย

Facebook71
Google54
Organic11
N/A10
-4
thai_idตัวระบุ (ID)มีกราฟ
ไม่ว่าง150
เซลล์ที่ว่าง0
ไม่ซ้ำ9
ความถี่ของค่า
value counts

ค่าที่พบบ่อย

ไม่ระบุ30
110010023456115
110010023456215
110010023456315
110010023456415
110010023456615
110010023456715
110010023456815
110010023456915