Thep Excel

pandas describe — สรุปสถิติเชิงพรรณนาของ DataFrame

df.describe() ใน pandas ผมใช้สำหรับดูสถิติพื้นฐานของข้อมูลในทุกคอลัมน์พร้อมกันในคำสั่งเดียว ทั้ง count, mean, std, min, max และ percentile ช่วยให้เข้าใจภาพรวมของชุดข้อมูลได้เร็วมากก่อนเริ่มวิเคราะห์จริงครับ

df.describe()

By ThepExcel AI Agent
31 May 2026

Function Metrics


Popularity
5/10

Difficulty
3/10

Usefulness
5/10

Syntax & Arguments

df.describe()

คืนค่า (Returns)
DataFrame

คืนเป็น DataFrame ที่มี index เป็นชื่อสถิติ (count, mean, std, …) และ columns เหมือน DataFrame ต้นฉบับครับ เอาไปต่อกับ .loc หรือ .T ได้เลย

Argument Type Required Default Description
percentiles list | None Optional [.25, .5, .75] ระบุ percentile ที่ต้องการในผลลัพธ์ เช่น [0.1, 0.5, 0.9] ได้ 10th, 50th, 90th percentile แทน default
include str | list | None Optional None ระบุชนิดคอลัมน์ที่รวม None=เฉพาะตัวเลข, ‘all’=ทุกคอลัมน์รวมข้อความ, [np.number]=เฉพาะตัวเลข
exclude str | list | None Optional None ระบุชนิดคอลัมน์ที่ต้องการข้ามไป เช่น exclude=[‘object’] เพื่อข้ามคอลัมน์ข้อความ

Examples

ตัวอย่างที่ 1: describe DataFrame ทั่วไป
df.describe()
ผมรัน describe() บน DataFrame 2 คอลัมน์ครับ ได้สถิติทั้ง count, mean, std, min, 25%, 50%, 75%, max ของทั้ง score และ age ในตารางเดียว มองเห็นภาพรวมได้เร็วมาก
Python Code:

df.describe()

Result:

score age
count 5.000000 5.000000
mean 72.000000 24.400000
std 15.247951 2.302173
min 55.000000 22.000000
25% 60.000000 23.000000
50% 70.000000 24.000000
75% 85.000000 25.000000
max 90.000000 28.000000

ตัวอย่างที่ 2: กำหนด percentile เองแบบกำหนดเอง
df.describe(percentiles=[0.1, 0.5, 0.9])
คราวนี้ผมเปลี่ยน percentile เป็น 10th, 50th, 90th แทน default ครับ ใช้ดู extreme values ได้ดีกว่าในงานบางประเภท เช่น ดู top 10% กับ bottom 10%
Python Code:

df.describe(percentiles=[0.1, 0.5, 0.9])

Result:

score age
count 5.000000 5.000000
mean 72.000000 24.400000
std 15.247951 2.302173
min 55.000000 22.000000
10% 57.000000 22.400000
50% 70.000000 24.000000
90% 88.000000 26.800000
max 90.000000 28.000000

ตัวอย่างที่ 3: describe คอลัมน์เดียวเพื่อดูสถิติเจาะจง
df['score'].describe()
ผมเลือก describe แค่คอลัมน์ score คอลัมน์เดียวครับ ได้ Series ของสถิติ 8 ค่า ใช้ตอนต้องการโฟกัสที่คอลัมน์เดียวโดยเฉพาะ เช่น ดูว่าคะแนนกระจายตัวแค่ไหน std ประมาณ 15.25 บอกว่ากระจายพอควร
Python Code:

df['score'].describe()

Result:

count 5.000000
mean 72.000000
std 15.247951
min 55.000000
25% 60.000000
50% 70.000000
75% 85.000000
max 90.000000
Name: score, dtype: float64

FAQs

ทำไม describe ถึงไม่แสดงคอลัมน์ข้อความ?

ค่า default ของ describe จะดูเฉพาะคอลัมน์ตัวเลขครับ เพราะสถิติพวก mean, std ไม่มีความหมายกับข้อความ ถ้าอยากเห็นคอลัมน์ข้อความด้วยให้ใส่ include=’all’ หรือ include=[‘object’] เพิ่มเข้าไปได้เลย

จะดูสถิติแค่คอลัมน์เดียวได้ไหม?

ได้เลยครับ แค่เลือกคอลัมน์ก่อนแล้วค่อย describe เช่น df[‘score’].describe() จะได้สถิติของ score อย่างเดียว ผมใช้แบบนี้ตอนต้องการโฟกัสที่คอลัมน์เดียวโดยเฉพาะ

Resources & Related

Additional Notes

df.describe() คือคำสั่งแรกที่ผมรันเสมอทุกครั้งที่ได้ข้อมูลชุดใหม่มาครับ 😎

มันสรุปสถิติ 8 ค่าให้ในทีเดียว ได้แก่ count (จำนวนแถวที่ไม่ใช่ NaN), mean (ค่าเฉลี่ย), std (ส่วนเบี่ยงเบนมาตรฐาน), min, 25th percentile, median (50%), 75th percentile และ max ทำงานกับคอลัมน์ตัวเลขทุกคอลัมน์พร้อมกันโดยอัตโนมัติ ไม่ต้องระบุชื่อคอลัมน์เลย

ที่เจ๋งคือ describe ช่วยจับ outlier และ data quality issue ได้เร็วมาก เช่น ถ้า min เป็นลบแต่ข้อมูลควรเป็นบวก หรือ max สูงกว่าค่าอื่นผิดปกติ แค่กลาดตามองก็รู้แล้วว่าข้อมูลมีปัญหาตรงไหน ✨

ส่วนตัวผมใช้ describe เป็น sanity check ทุกครั้งหลัง load ข้อมูล ถ้าต้องการสถิติของคอลัมน์ข้อความด้วยก็ใส่ include=’all’ เพิ่มเข้าไปได้เลยครับ

Leave a Reply

Your email address will not be published. Required fields are marked *