Thep Excel

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

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

>_
df.sum(axis)

ความนิยม5/10
ความยาก2/10
ประโยชน์5/10

อัปเดต 31 May 2026

Syntax & Arguments

คืนค่าSeries

เรียก df.sum() บน DataFrame ตัวเลข จะคืนเป็น Series ครับ — index คือชื่อคอลัมน์ ค่าคือผลรวมของคอลัมน์นั้นๆ ถ้าอยากได้ผลรวมก้อนเดียวให้เลือกคอลัมน์เดียวก่อน (df['col'].sum()) จะได้เป็นตัวเลขแทน

อาร์กิวเมนต์ ชนิด คำอธิบาย
[axis]ไม่บังคับ int | str ทิศทางที่จะรวมค่า axis=0 (default) รวมลงในแต่ละคอลัมน์ ส่วน axis=1 รวมขวางในแต่ละแถว จำง่ายๆ ว่า 0 = แนวตั้ง, 1 = แนวนอนครับ

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

ถ้าให้ผมจัดอันดับฟังก์ชัน pandas ที่มือใหม่สาย Excel ต้องรู้จักก่อนใคร sum() ต้องมาเป็นต้นๆ ครับ เพราะมันคือ SUM ที่เราใช้กันจนชินมือนั่นเอง 😎

ความต่างอยู่ที่ขอบเขตการทำงาน ใน Excel เราเขียน =SUM(B2:B100) ทีละคอลัมน์แล้วลากไปเรื่อยๆ แต่ใน pandas พอเรียก df.sum() ครั้งเดียว pandas จะรวมทุกคอลัมน์ตัวเลขให้พร้อมกัน ได้ผลกลับมาเป็น Series ที่ index คือชื่อคอลัมน์ และค่าคือผลรวมของคอลัมน์นั้นๆ ครับ

ที่เจ๋งคือพระเอกของเรื่องนี้คือ argument ชื่อ axis ครับ ค่า default คือ axis=0 = รวมลงในแนวตั้ง (รวมแต่ละคอลัมน์) แต่ถ้าเปลี่ยนเป็น axis=1 จะกลายเป็นรวมในแนวนอน (รวมแต่ละแถว) เหมือนเราหาผลรวมรายบรรทัดใน Excel เลย จำง่ายๆ ว่า 0 = ลง, 1 = ขวาง ✨

ส่วนตัวผมเวลาเจอข้อมูลยอดขายหลายเดือนหลายสาขา ผมใช้ df.sum() รวมยอดทุกเดือน แล้ว df.sum(axis=1) รวมยอดแต่ละสาขา จบในสองบรรทัด ไม่ต้องนั่งลากสูตรให้เมื่อยมือครับ

Examples

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

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

>_
df.sum()

ผลลัพธ์jan 450
feb 400
dtype: int64
ตัวอย่างที่ 2: รวมแต่ละแถวด้วย axis=1df.sum(axis=1)

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

>_
df.sum(axis=1)

ผลลัพธ์0 220
1 280
2 350
dtype: int64
ตัวอย่างที่ 3: รวมเฉพาะคอลัมน์เดียวdf['jan'].sum()

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

>_
df['jan'].sum()

ผลลัพธ์450

FAQs

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

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

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

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

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ pandas sum จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้pandas sumAggregation
Aggregation (3)
pandas count

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

pandas groupby

groupby ใน pandas ผมใช้สำหรับจัดกลุ่มข้อมูลใน DataFrame แล้วคำนวณค่าสรุปในแต่ละกลุ่ม เช่น หาผลรวม ค่าเฉลี่ย หรือค่าสถิติต่างๆ ตามหมวดหมู่ที่กำหนด ถ้าใครเคยใช้ PivotTable ใน Excel มาก่อน บอกเลยว่าตัวนี้คือเครื่องมือสายเดียวกันเลยครับ

pandas mean

df.mean() ใน pandas ผมใช้หาค่าเฉลี่ยของแต่ละคอลัมน์ใน DataFrame ทีละรอบเดียว เหมือนกับพิมพ์ AVERAGE ทุกคอลัมน์พร้อมกันเลยครับ ถ้าต้องการแค่คอลัมน์เดียวก็ใช้ df['col'].mean() ได้ค่าตัวเลขออกมาเลย

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่