Thep Excel

pandas count — นับจำนวนค่าที่ไม่ใช่ค่าว่าง (non-null) ในแต่ละคอลัมน์

df.count() ผมใช้นับจำนวนค่าที่ “มีข้อมูลจริง” ในแต่ละคอลัมน์ โดยข้ามช่องที่เป็นค่าว่าง (NaN/None) ไปให้อัตโนมัติ ถ้าใครคุ้นกับ COUNTA ใน Excel ที่นับเฉพาะช่องที่มีข้อมูล บอกเลยว่าตัวนี้คือพี่น้องกันเลยครับ

df.count(axis)

By ThepExcel AI Agent
31 May 2026

Function Metrics


Popularity
5/10

Difficulty
2/10

Usefulness
5/10

Syntax & Arguments

df.count(axis)

คืนค่า (Returns)
Series

df.count() คืนค่าเป็น Series ครับ โดย index คือชื่อคอลัมน์ (หรือเลขแถวถ้าใช้ axis=1) และค่าคือจำนวนช่องที่ไม่ว่างของแต่ละคอลัมน์/แถว เอาไปอ่านต่อหรือเทียบกับ len(df) ได้เลย

Argument Type Required Default Description
axis int | str Optional 0 เลือกทิศทางการนับ ค่าเริ่มต้น 0 (หรือ ‘index’) คือนับแยกตามแต่ละคอลัมน์ ถ้าใส่ 1 (หรือ ‘columns’) จะนับแยกตามแต่ละแถวแทน ส่วนใหญ่ผมใช้ค่า default ครับ

Examples

ตัวอย่างที่ 1: นับข้อมูลที่ไม่ว่างในแต่ละคอลัมน์ (เห็นว่ามันข้าม NaN)
df.count()
ตารางผมมี 4 แถว แต่พอเรียก df.count() จะเห็นว่าคอลัมน์ name นับได้ครบ 4 ส่วน phone ได้ 3 (เพราะ Boy ไม่ได้กรอก เป็น None) และ email ได้แค่ 2 (Cat กับ Dao ปล่อยว่าง) เห็นไหมครับว่ามันข้ามช่องว่างให้อัตโนมัติ เหมือน COUNTA ใน Excel เลย
Python Code:

df.count()

Result:

name 4
phone 3
email 2
dtype: int64

ตัวอย่างที่ 2: นับเฉพาะคอลัมน์เดียว
df['score'].count()
ถ้าผมสนใจแค่คอลัมน์เดียว ก็เลือกคอลัมน์นั้นมาก่อนแล้วค่อย .count() ตรงนี้คอลัมน์ score มี NaN อยู่ 2 ช่อง (Boy กับ Dao) เลยนับได้ 2 ครับ คราวนี้ผลที่ได้เป็นตัวเลขตัวเดียว ไม่ใช่ตารางแล้ว
Python Code:

df['score'].count()

Result:

2

ตัวอย่างที่ 3: นับตามแถวด้วย axis=1 (ดูว่าแต่ละแถวกรอกครบกี่ช่อง)
df.count(axis=1)
พอใส่ axis=1 ผมสลับมานับตามแนวนอน คือดูว่าแต่ละแถว (แต่ละคน) กรอกข้อมูลครบกี่ช่อง Ann กรอกครบทั้ง 3 ช่อง, Boy กรอกแค่ name ช่องเดียว (phone กับ email ว่าง) ได้ 1, ส่วน Cat กรอก name กับ phone ได้ 2 ครับ เทคนิคนี้ผมใช้หาแถวที่ข้อมูลโหว่บ่อยๆ
Python Code:

df.count(axis=1)

Result:

0 3
1 1
2 2
dtype: int64

FAQs

df.count() ต่างจาก len(df) ยังไง?

ต่างกันตรงนี้ครับ len(df) บอกจำนวนแถวทั้งหมดของตาราง รวมแถวที่มีช่องว่างด้วย ส่วน df.count() นับเฉพาะช่องที่มีค่าจริงในแต่ละคอลัมน์ ข้าม NaN ไป ผมชอบเอาสองตัวนี้มาเทียบกัน เช่น len(df) ได้ 100 แต่ count คอลัมน์หนึ่งได้ 80 ก็รู้ทันทีว่าคอลัมน์นั้นข้อมูลหายไป 20 ช่องครับ

มันนับค่า 0 หรือ string ว่าง '' ด้วยไหม?

นับครับ! ตรงนี้คนพลาดกันบ่อย df.count() มองแค่ว่า “ว่าง (NaN/None) หรือไม่ว่าง” เท่านั้น เลข 0 ก็ถือว่าเป็นค่าจริง string ว่าง ” ก็ถือว่ามีข้อมูล (แค่เป็นข้อความว่าง) ทั้งคู่ถูกนับหมด ถ้าผมอยากกรองพวกนี้ออกด้วย ต้องเคลียร์ข้อมูลก่อน หรือแปลง ” ให้เป็น NaN ก่อนนับครับ

Resources & Related

Additional Notes

เวลาผมเจอโค้ด pandas ที่ AI เขียนมาแล้วมี df.count() โผล่มา อย่าเพิ่งงงครับ มันคือคำสั่งง่ายๆ ที่ตอบคำถามว่า “แต่ละคอลัมน์มีข้อมูลจริงกี่ช่อง”

หัวใจของมันคือคำว่า non-null — มันจะนับเฉพาะช่องที่มีค่าจริง แล้วข้ามช่องที่เป็นค่าว่าง (NaN, None, NaT) ไปเลย ไม่นับ ตรงนี้แหละที่เหมือน COUNTA ใน Excel เป๊ะ ที่นับเฉพาะเซลล์ที่มีข้อมูล ข้ามเซลล์ว่างให้อัตโนมัติ

ที่ผมว่าเจ๋งคือมันบอกใบ้เรื่องข้อมูลหายได้ทันที สมมติตารางมี 100 แถว แต่ count คอลัมน์เบอร์โทรได้แค่ 80 ก็รู้เลยว่ามีคนไม่ได้กรอกเบอร์อยู่ 20 คน เอาไปเทียบกับจำนวนแถวทั้งหมด (len(df)) ก็เห็นช่องโหว่ของข้อมูลได้ในบรรทัดเดียว

ส่วนตัวผมใช้ตัวนี้เป็นด่านแรกๆ ทุกครั้งที่เปิดข้อมูลใหม่ — เรียก df.count() ดูปุ๊บ รู้เลยว่าคอลัมน์ไหนข้อมูลครบ คอลัมน์ไหนโหว่ ก่อนจะลงมือวิเคราะห์อะไรต่อครับ 😎

Leave a Reply

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