---
title: pandas tail — แสดงแถวท้ายสุดของ DataFrame
url: https://www.thepexcel.com/functions/python/inspection/pandas-tail/
type: function-explainer
program: Python
syntax: df.tail(n)
date: 2026-05-31
scores:
  popularity: 5
  difficulty: 2
  usefulness: 5
---

# pandas tail — แสดงแถวท้ายสุดของ DataFrame

> df.tail(n) ผมใช้สำหรับดึงแถวท้ายสุด n แถวของ DataFrame ออกมาดูเร็วๆ ครับ เหมือนตอนเปิด Excel แล้วกด

## คำอธิบาย

df.tail(n) ผมใช้สำหรับดึงแถวท้ายสุด n แถวของ DataFrame ออกมาดูเร็วๆ ครับ เหมือนตอนเปิด Excel แล้วกด Ctrl+End เพื่อเลื่อนไปดูข้อมูลแถวล่างสุดของตาราง — มันคือคู่หูของ head ที่ดูแถวบนสุดนั่นเอง

## Syntax

```excel
df.tail(n)
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| n | No | int | 5 | จำนวนแถวท้ายสุดที่อยากให้แสดง ถ้าไม่ใส่จะเป็น 5 แถว ใส่เลขลบได้ด้วย เช่น -2 หมายถึงข้าม 2 แถวแรกแล้วเอาที่เหลือทั้งหมด |

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: ดู 5 แถวสุดท้ายแบบ default

```excel
df.tail()
```

**ผลลัพธ์:** `  month  sales
2   Mar     90
3   Apr    140
4   May    160
5   Jun    130
6   Jul    175`

ผมเรียก df.tail() เฉยๆ ไม่ใส่เลขอะไรเลย pandas เลยให้ 5 แถวสุดท้ายมาเป็นค่า default ครับ สังเกตว่าตัวเลข index ทางซ้ายมันไม่ได้เริ่มจาก 0 แต่ต่อเนื่องจากตำแหน่งจริงในตาราง ทำให้เรารู้ว่านี่คือแถวท้ายๆ จริงๆ

### 2. ตัวอย่างที่ 2: ขอดูแค่ 3 แถวสุดท้าย

```excel
df.tail(3)
```

**ผลลัพธ์:** `  name  score
3  Dan     91
4  Eve     64
5  Fay     80`

คราวนี้ผมใส่เลข 3 เข้าไป เพื่อบอกว่าขอดูแค่ 3 แถวสุดท้ายพอ เหมาะตอนข้อมูลเยอะมากแล้วเราอยากเห็นแค่ปลายหางสั้นๆ ครับ เหมือนเปิด Excel แล้วเลือกดูแค่ 3 แถวล่างสุด

### 3. ตัวอย่างที่ 3: ใช้ n เป็นเลขลบเพื่อตัดหัวทิ้ง

```excel
df.tail(-1)
```

**ผลลัพธ์:** `   id value
1   2     A
2   3     B
3   4     C
4   5     D`

ลูกเล่นที่หลายคนไม่รู้ครับ — ถ้าใส่เลขลบ tail จะ "ข้าม" แถวแรกๆ ทิ้งแล้วเอาที่เหลือทั้งหมด df.tail(-1) คือข้ามแถวแรก 1 แถว (ในที่นี้คือบรรทัดขยะ header_junk) แล้วคืนที่เหลือมาให้ ผมใช้ตอนเจอข้อมูลที่มีบรรทัดหัวเกินติดมาแถวบนสุด

## หมายเหตุเพิ่มเติม

- 💡 tail คืนค่าเป็น DataFrame ก้อนใหม่ ไม่ได้แก้ของเดิมครับ เลยเอาไป chain ต่อได้สบาย เช่น df.tail(10).mean() เพื่อหาค่าเฉลี่ยเฉพาะ 10 แถวล่าสุด

- ตอนทำงานกับข้อมูล time series ที่เรียงตามวันที่อยู่แล้ว ผมใช้ df.tail() เพื่อเช็กข้อมูลล่าสุดได้ทันที เพราะข้อมูลใหม่สุดมักอยู่ท้ายตาราง ไม่ต้อง sort ใหม่ให้เสียเวลา

## คำถามที่พบบ่อย

**Q: tail ต่างจาก head ยังไง?**

ต่างกันแค่หัวกับหางครับ 😄 head(n) ให้แถวบนสุด n แถว ส่วน tail(n) ให้แถวล่างสุด n แถว ผมมักใช้คู่กันเสมอ — head เช็กว่าข้อมูลเริ่มถูกไหม, tail เช็กว่าข้อมูลจบถูกไหม เห็นทั้งหัวทั้งหางก็พอจับทิศทางข้อมูลได้แล้ว

**Q: ถ้า n มากกว่าจำนวนแถวที่มีจริงจะ error ไหม?**

ไม่ error ครับ สบายใจได้ ถ้าตารางมี 4 แถวแล้วผมสั่ง df.tail(100) มันก็แค่คืนทั้ง 4 แถวกลับมาให้ ไม่พังไม่เตือนอะไร เหมือน Excel ที่ต่อให้เรากด scroll เลยตารางไป มันก็ไม่มีอะไรเสียหาย

## แหล่งข้อมูลเพิ่มเติม

- [pandas.DataFrame.tail (official docs)](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.tail.html) _(article)_

---

_Source: [https://www.thepexcel.com/functions/python/inspection/pandas-tail/](https://www.thepexcel.com/functions/python/inspection/pandas-tail/)_
