---
title: pandas sum — รวมค่าทุกคอลัมน์ (หรือทุกแถว) ทีเดียว
url: https://www.thepexcel.com/functions/python/aggregation/pandas-sum/
type: function-explainer
program: Python
syntax: df.sum(axis)
date: 2026-05-31
scores:
  popularity: 5
  difficulty: 2
  usefulness: 5
---

# pandas sum — รวมค่าทุกคอลัมน์ (หรือทุกแถว) ทีเดียว

> df.sum() ผมใช้รวมค่าตัวเลขใน DataFrame ครับ ถ้าใครคุ้นกับ SUM ใน Excel ตัวนี้คือ SUM นั่นแหละ แต่ของ

## คำอธิบาย

df.sum() ผมใช้รวมค่าตัวเลขใน DataFrame ครับ ถ้าใครคุ้นกับ SUM ใน Excel ตัวนี้คือ SUM นั่นแหละ แต่ของแถมคือมันลากรวมให้ทุกคอลัมน์พร้อมกันในคำสั่งเดียว ไม่ต้องลากสูตรทีละช่อง

## Syntax

```excel
df.sum(axis)
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| axis | No | int \| str | 0 | ทิศทางที่จะรวมค่า axis=0 (default) รวมลงในแต่ละคอลัมน์ ส่วน axis=1 รวมขวางในแต่ละแถว จำง่ายๆ ว่า 0 = แนวตั้ง, 1 = แนวนอนครับ |

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: รวมยอดแต่ละคอลัมน์ (default)

```excel
df.sum()
```

**ผลลัพธ์:** `jan    450
feb    400
dtype: int64`

ผมเรียก df.sum() เฉยๆ pandas ก็รวมค่าลงในแต่ละคอลัมน์ให้เลยครับ คอลัมน์ jan ได้ 450 (100+200+150) ส่วน feb ได้ 400 (120+80+200) ผลกลับมาเป็น Series ที่ index คือชื่อคอลัมน์ เหมือนเขียน =SUM() ทีละคอลัมน์ใน Excel แต่ทำให้ทุกคอลัมน์พร้อมกันรวดเดียว

### 2. ตัวอย่างที่ 2: รวมแต่ละแถวด้วย axis=1

```excel
df.sum(axis=1)
```

**ผลลัพธ์:** `0    220
1    280
2    350
dtype: int64`

คราวนี้ผมใส่ axis=1 เข้าไป pandas จะเปลี่ยนทิศมารวมขวางในแต่ละแถวแทนครับ แถวแรกได้ 220 (100+120) แถวสองได้ 280 (200+80) แถวสามได้ 350 (150+200) เหมือนเราหาผลรวมรายบรรทัดใน Excel โดยที่ index ของผลลัพธ์คือเลขแถวเดิมครับ

### 3. ตัวอย่างที่ 3: รวมเฉพาะคอลัมน์เดียว

```excel
df['jan'].sum()
```

**ผลลัพธ์:** `450`

ถ้าอยากได้ผลรวมของคอลัมน์เดียว ผมเลือกคอลัมน์ออกมาก่อนด้วย df['jan'] แล้วค่อยต่อ .sum() ครับ คราวนี้ได้ตัวเลขก้อนเดียวคือ 450 ไม่ใช่ Series แล้ว เพราะเรารวมแค่คอลัมน์เดียว ใกล้เคียงกับ =SUM(B2:B4) ใน Excel ที่สุดครับ

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

- 💡 df.sum() ข้ามคอลัมน์ที่เป็นข้อความให้อัตโนมัติครับ แต่ถ้าตารางมีคอลัมน์ตัวเลขที่จริงๆ เป็น id (เช่น รหัสพนักงาน) มันจะเผลอเอาไปรวมด้วย ผมเลยชอบเลือกเฉพาะคอลัมน์ที่อยากรวมก่อน เช่น df[['sales','qty']].sum() กันพลาด

- ถ้าอยากได้ผลรวมรวมทั้งตารางเป็นเลขก้อนเดียว (grand total) ผมต่อ .sum() ซ้อนสองชั้นเลยครับ df.sum().sum() ชั้นแรกรวมแต่ละคอลัมน์ ชั้นสองรวมผลรวมทั้งหมดอีกที

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

**Q: ถ้าในคอลัมน์มีค่าว่าง (NaN) df.sum() จะพังไหม?**

ไม่พังครับ สบายใจได้ โดย default pandas จะข้าม NaN ให้อัตโนมัติ (เหมือน skipna=True) แปลว่ามันรวมเฉพาะตัวเลขที่มีจริง ไม่เหมือน Excel ที่บางทีเจอ #VALUE! ครับ แต่ถ้าผมอยากให้ NaN ทำให้ผลรวมเป็น NaN ไปเลย ก็สั่ง df.sum(skipna=False) ได้

**Q: axis=0 กับ axis=1 จำไม่ได้สักที มีวิธีจำง่ายๆ ไหม?**

ผมจำแบบนี้ครับ axis=0 คือทิศที่วิ่ง 'ลง' ตามแถว (รวมเลยได้ผลรวมของแต่ละคอลัมน์) ส่วน axis=1 วิ่ง 'ขวาง' ตามคอลัมน์ (ได้ผลรวมของแต่ละแถว) ท่องสั้นๆ ว่า 0=ลง 1=ขวาง เดี๋ยวก็ติดเองครับ

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

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

---

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