head ใน pandas ผมใช้สำหรับดูข้อมูลแถวแรกๆ ของ DataFrame เพื่อเช็กว่าโหลดข้อมูลมาถูกต้องหรือเปล่า คล้ายกับการ scroll ไปดูบนสุดของตาราง Excel เลยครับ
DataFrame
คืน DataFrame ใหม่ที่มีแค่ n แถวแรกครับ ไม่ใช่ view ของต้นฉบับ — แก้ไขผลลัพธ์ไม่กระทบ df เดิม ใช้ chain ต่อได้เลย เช่น .head(10).reset_index()
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| [n]ไม่บังคับ | int | 5 | จำนวนแถวที่อยากดู ถ้าไม่ใส่จะได้ 5 แถวแรกโดยอัตโนมัติ ใส่ค่าลบได้ด้วย เช่น -2 หมายถึงแสดงทุกแถวยกเว้น 2 แถวสุดท้าย |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
ทุกครั้งที่โหลดไฟล์ CSV หรือดึงข้อมูลจากฐานข้อมูลมา สิ่งแรกที่ผมทำเสมอคือเรียก .head() เพื่อดูว่าข้อมูลหน้าตาเป็นยังไง คอลัมน์ถูกต้องไหม ค่าสมเหตุสมผลไหม ก่อนที่จะเริ่มวิเคราะห์จริงจังครับ
โดยค่าเริ่มต้น .head() จะแสดง 5 แถวแรก แต่ถ้าอยากเห็นมากหรือน้อยกว่านั้นก็แค่ใส่ตัวเลขลงไป เช่น .head(10) หรือ .head(3) ก็ได้ครับ นอกจาก DataFrame แล้วยังใช้กับ Series ได้เช่นกัน
ที่เจ๋งคือ .head() มักใช้คู่กับ .sort_values() เพื่อดู Top-N ได้เลย เช่น เรียงจากมากไปน้อยแล้วเอาแค่ 5 อันดับแรก — pattern นี้ผมใช้บ่อยมากตอนทำรายงานครับ ✨
ส่วนตัวผมชอบ .head() มากกว่าการ print df ทั้งตาราง เพราะมันเร็วและไม่ทำให้หน้าจอล้น โดยเฉพาะตอนที่ข้อมูลมีเป็นล้านแถว 😎
ผมเรียก .head() โดยไม่ใส่ตัวเลข มันจะแสดง 5 แถวแรกให้อัตโนมัติครับ เหมือนการ scroll ขึ้นไปดูบนสุดของตาราง Excel แค่ต้องการเช็กภาพรวมว่าข้อมูลโหลดมาถูกไหม
ผมใส่ n=3 เพื่อดูแค่ 3 แถวแรก มีประโยชน์ตอนที่อยากเห็นตัวอย่างข้อมูลแค่นิดหน่อย หรือตอน screen มีพื้นที่จำกัดครับ
head ใช้ได้กับ Series ด้วยนะครับ ไม่ใช่แค่ DataFrame ผมมักใช้แบบนี้ตอนดูผลหลังจาก groupby หรือหลังดึงคอลัมน์เดียวออกมาครับ
pattern นี้ผมใช้บ่อยมากครับ เรียงจากมากไปน้อยด้วย sort_values แล้วต่อด้วย head(5) เพื่อเอาแค่ Top-5 เหมือน LARGE + INDEX/MATCH ใน Excel เลย แต่เขียนง่ายกว่าเยอะ
head() ดูแถวจาก ด้านบน (แรก) ส่วน tail() ดูจาก ด้านล่าง (ท้าย) ครับ เช่น df.tail(5) จะได้ 5 แถวสุดท้าย ผมมักใช้ tail() ตอนอยากเช็กว่าข้อมูลใหม่ที่เพิ่งต่อท้ายเข้าไปถูกต้องไหม หรือดูว่าข้อมูลเรียงตามเวลาแล้วแถวล่าสุดคืออะไรครับ
ได้ครับ! df.head(-2) หมายถึงแสดงทุกแถว ยกเว้น 2 แถวสุดท้าย เช่น DataFrame มี 10 แถว head(-2) จะได้ 8 แถวแรก ผมไม่ค่อยได้ใช้ pattern นี้บ่อยนักครับ แต่รู้ไว้ก็ดี
ไม่ครับ head() เป็น method ที่ read-only คืนค่า DataFrame ใหม่ที่มีแค่แถวที่เลือก ไม่กระทบข้อมูลต้นฉบับเลย เหมือนการ filter ดูแบบ temporary ครับ
ฟังก์ชันที่ผู้เขียนโยงไว้กับ pandas head จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
iloc ใน pandas ผมใช้สำหรับเลือกแถวและคอลัมน์ด้วยตำแหน่งตัวเลข (0-based index) เหมือนการอ้างอิงเซลล์ใน Excel ด้วยเลขแถว-คอลัมน์ครับ ต่างจาก loc ตรงที่ iloc ไม่สนใจชื่อ index — ดูแค่ว่าอยู่ตำแหน่งที่เท่าไหร่เท่านั้น
nlargest ใน pandas ผมใช้ดึง N แถวที่ค่าในคอลัมน์ที่ระบุสูงที่สุดออกมาเลย เช่น Top 3 ลูกค้ายอดซื้อเยอะสุด ถ้าใครเคยทำ Sort มาก→น้อย ใน Excel แล้วเอา N แถวบนสุด ตัวนี้คือคำสั่งเดียวที่ทำงานนั้นให้จบครับ
nsmallest ใน pandas ผมใช้ดึง n แถวที่ค่าในคอลัมน์ที่ระบุต่ำสุดออกมา เหมือนใน Excel ที่เรา Sort จากน้อยไปมากแล้วหยิบแถวบนสุดมา n แถว (Bottom N) แต่ตัวนี้สั่งบรรทัดเดียวจบเลยครับ
query ใน pandas ผมใช้กรองแถวใน DataFrame ด้วยข้อความเงื่อนไขที่อ่านง่ายเหมือนพูดภาษาคน แทนที่จะเขียน boolean mask ยาวๆ ให้ตาลาย เหมาะมากกับเงื่อนไขซับซ้อนหลายข้อที่อยากให้โค้ดสั้นและอ่านรู้เรื่องครับ
read_csv ใน pandas ผมใช้สำหรับโหลดข้อมูลจากไฟล์ CSV หรือ text ที่มีตัวคั่นเข้ามาเป็น DataFrame พร้อมใช้งาน ถ้าใครเคยเปิดไฟล์ CSV ใน Excel แล้วได้ตารางให้แก้งานต่อ read_csv ก็คือสิ่งเดียวกันเลยครับแต่สำหรับ Python
read_excel ใน pandas ผมใช้สำหรับโหลดข้อมูลจากไฟล์ .xlsx หรือ .xls เข้ามาเป็น DataFrame เพื่อวิเคราะห์ต่อใน Python ถ้าเคยเปิดไฟล์ Excel แล้วก็อปข้อมูลไปทำงานต่อ ตัวนี้ทำแบบเดียวกันแต่อัตโนมัติเลยครับ
pd.DataFrame คือคำสั่งสร้างตาราง 2 มิติ (แถว × คอลัมน์) ใน pandas ซึ่งผมเทียบได้กับ sheet หรือ range ใน Excel เลยครับ โค้ด Python ที่วิเคราะห์ข้อมูลแทบทุกตัวเริ่มต้นด้วยการสร้าง DataFrame นี่แหละ
df.describe() ใน pandas ผมใช้สำหรับดูสถิติพื้นฐานของข้อมูลในทุกคอลัมน์พร้อมกันในคำสั่งเดียว ทั้ง count, mean, std, min, max และ percentile ช่วยให้เข้าใจภาพรวมของชุดข้อมูลได้เร็วมากก่อนเริ่มวิเคราะห์จริงครับ
df.sort_values() ใน pandas ผมใช้สำหรับเรียงลำดับแถวใน DataFrame ตามค่าของคอลัมน์ที่กำหนด เรียงจากน้อยไปมากหรือมากไปน้อยก็ได้ และยังเรียงตามหลายคอลัมน์พร้อมกันได้ด้วยครับ
df.tail(n) ผมใช้สำหรับดึงแถวท้ายสุด n แถวของ DataFrame ออกมาดูเร็วๆ ครับ เหมือนตอนเปิด Excel แล้วกด Ctrl+End เพื่อเลื่อนไปดูข้อมูลแถวล่างสุดของตาราง — มันคือคู่หูของ head ที่ดูแถวบนสุดนั่นเอง
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่