Thep Excel

pd.DataFrame — สร้างตาราง 2 มิติหัวใจของ pandas

pd.DataFrame คือคำสั่งสร้างตาราง 2 มิติ (แถว × คอลัมน์) ใน pandas ซึ่งผมเทียบได้กับ sheet หรือ range ใน Excel เลยครับ โค้ด Python ที่วิเคราะห์ข้อมูลแทบทุกตัวเริ่มต้นด้วยการสร้าง DataFrame นี่แหละ

pd.DataFrame(data, index, columns)

By ThepExcel AI Agent
31 May 2026

Function Metrics


Popularity
5/10

Difficulty
3/10

Usefulness
5/10

Syntax & Arguments

pd.DataFrame(data, index, columns)

คืนค่า (Returns)
DataFrame

คืนเป็น DataFrame พร้อมใช้งานครับ — นำไปกรอง จัดกลุ่ม คำนวณ หรือ export ต่อได้เลย ไม่ต้อง chain เพิ่ม

Argument Type Required Default Description
data dict | list | ndarray | DataFrame Optional ข้อมูลต้นทางสำหรับสร้างตาราง รับได้หลายรูปแบบ — dict ของ list (แต่ละ key = คอลัมน์), list of lists (แต่ละ list = แถว), list of dicts, numpy array หรือ DataFrame อื่น
index list | Index Optional ระบุชื่อหรือค่าสำหรับ index แถว (เทียบได้กับชื่อแถวใน Excel) ถ้าไม่ระบุจะใช้เลข 0, 1, 2, … อัตโนมัติ
columns list | Index Optional ระบุชื่อคอลัมน์ ใช้กำหนดชื่อเมื่อ data เป็น list-of-lists หรือเรียงลำดับคอลัมน์ใหม่เมื่อ data เป็น dict

Examples

ตัวอย่างที่ 1: สร้างตารางจาก dict — วิธีที่ AI ใช้บ่อยที่สุด
pd.DataFrame({'ชื่อ': ['สมชาย', 'สมหญิง', 'สมศรี'], 'แผนก': ['IT', 'HR', 'IT'], 'เงินเดือน': [70000, 55000, 80000]})
ผมสร้างตารางจาก dict ครับ แต่ละ key ('ชื่อ', 'แผนก', 'เงินเดือน') กลายเป็นชื่อคอลัมน์ แต่ละ list คือค่าในคอลัมน์นั้น เหมือนวาง header แล้วใส่ข้อมูลลงแต่ละคอลัมน์ใน Excel เลย วิธีนี้ผมเจอในโค้ด AI บ่อยมากครับ
Python Code:

pd.DataFrame({'ชื่อ': ['สมชาย', 'สมหญิง', 'สมศรี'], 'แผนก': ['IT', 'HR', 'IT'], 'เงินเดือน': [70000, 55000, 80000]})

Result:

ชื่อ แผนก เงินเดือน
0 สมชาย IT 70000
1 สมหญิง HR 55000
2 สมศรี IT 80000

ตัวอย่างที่ 2: สร้างตารางจาก list-of-lists พร้อมกำหนด columns
pd.DataFrame([[1, 'A', 100], [2, 'B', 200], [3, 'C', 300]], columns=['ID', 'ประเภท', 'ราคา'])
คราวนี้ผมส่ง data เป็น list ของ list ครับ แต่ละ list ข้างในคือ 1 แถว (เหมือน 1 row ใน Excel) แล้วใช้ columns= บอกว่าแต่ละคอลัมน์ชื่ออะไร โค้ด AI บางตัวสร้างแบบนี้เวลาข้อมูลมาเป็นแถวๆ
Python Code:

pd.DataFrame([[1, 'A', 100], [2, 'B', 200], [3, 'C', 300]], columns=['ID', 'ประเภท', 'ราคา'])

Result:

ID ประเภท ราคา
0 1 A 100
1 2 B 200
2 3 C 300

ตัวอย่างที่ 3: สร้างตารางจาก list of dicts — รูปแบบ API JSON
pd.DataFrame([{'name': 'Alice', 'score': 90}, {'name': 'Bob', 'score': 85}, {'name': 'Carol', 'score': 95}])
ผมส่ง list ของ dict เข้าไปครับ แต่ละ dict คือ 1 แถว key ในแต่ละ dict กลายเป็นชื่อคอลัมน์อัตโนมัติ รูปแบบนี้เจอบ่อยมากตอนดึงข้อมูลจาก API ที่ส่งกลับมาเป็น JSON array ครับ
Python Code:

pd.DataFrame([{'name': 'Alice', 'score': 90}, {'name': 'Bob', 'score': 85}, {'name': 'Carol', 'score': 95}])

Result:

name score
0 Alice 90
1 Bob 85
2 Carol 95

ตัวอย่างที่ 4: กำหนด index แถวเองแทนเลข 0,1,2
pd.DataFrame({'Q1': [100, 200], 'Q2': [150, 250], 'Q3': [180, 220]}, index=['สินค้า A', 'สินค้า B'])
ปกติ pandas จะตั้งเลข 0, 1, 2 ให้เป็น index แถว แต่ผมใช้ index= กำหนดชื่อแถวเองได้ครับ ตัวอย่างนี้สร้างตารางยอดขายรายไตรมาส โดยชื่อแถวเป็นชื่อสินค้าแทนเลข เหมือน freeze row ซ้ายไว้เป็น label ใน Excel
Python Code:

pd.DataFrame({'Q1': [100, 200], 'Q2': [150, 250], 'Q3': [180, 220]}, index=['สินค้า A', 'สินค้า B'])

Result:

Q1 Q2 Q3
สินค้า A 100 150 180
สินค้า B 200 250 220

FAQs

ทำไม AI ถึงชอบสร้าง DataFrame จาก dict มากที่สุด?

เพราะอ่านง่ายที่สุดครับ เห็นชื่อคอลัมน์กับค่าคู่กันเลย ต่างจาก list-of-lists ที่ต้องนับตำแหน่งว่า index 0 คือคอลัมน์อะไร ผมแนะนำให้คุ้นกับรูปแบบ dict ก่อนเลย เพราะโค้ด AI ส่วนใหญ่สร้าง DataFrame แบบนี้ทั้งนั้นครับ

DataFrame ต่างจาก list ธรรมดายังไง ทำไมไม่ใช้ list แทน?

list ธรรมดาไม่มีชื่อคอลัมน์ ไม่มี index ผมต้องนับตำแหน่งเองตลอด แต่ DataFrame มีชื่อคอลัมน์ให้เรียกตรงๆ เช่น df[‘เงินเดือน’] แถมยังกรอง เรียงลำดับ หายอดรวม หรือ join ตารางอื่นได้ด้วยคำสั่งสั้นๆ ครับ ถ้าข้อมูลมีโครงสร้างตารางผม always ใช้ DataFrame ไม่มีข้อยกเว้น

ถ้า AI สร้าง df = pd.DataFrame({…}) ในโค้ด แล้วผมจะดูข้อมูลข้างในยังไง?

ใช้ df.head() เพื่อดู 5 แถวแรก หรือ df ตรงๆ ใน Jupyter notebook จะแสดงตารางสวยๆ เลยครับ อีกตัวที่ผมใช้บ่อยคือ df.info() ดูชนิดข้อมูลแต่ละคอลัมน์ กับ df.describe() ดูสถิติรวมครับ

Resources & Related

Additional Notes

DataFrame คือ “ตาราง” ใน Python ครับ — มีแถว มีคอลัมน์ มี header เหมือน Excel ทุกอย่าง ผมใช้มันเป็นจุดเริ่มต้นของงานวิเคราะห์ข้อมูลเกือบทุกงาน ไม่ว่าจะอ่านจากไฟล์ สร้างจากตัวเลขที่คำนวณมา หรือแปลงจากข้อมูล API

วิธีสร้าง DataFrame มีหลายแบบ แต่ที่ AI มักสร้างให้ในโค้ดบ่อยที่สุดคือแบบ dict เช่น pd.DataFrame({‘ชื่อคอลัมน์’: [ค่า, ค่า, …]}) — แต่ละ key ในตัวแปร dict จะกลายเป็นชื่อคอลัมน์ แต่ละ list ในนั้นคือค่าในคอลัมน์นั้น นึกภาพง่ายๆ ว่าหนึ่ง key = หนึ่งคอลัมน์ใน Excel ครับ

ที่เจ๋งคือ DataFrame รองรับต้นทางหลายแบบมาก ทั้ง dict, list-of-lists, list of dicts, หรือแม้แต่ numpy array — แล้วยังกำหนด index แถว (แบบกำหนดชื่อแถวใน Excel ได้) และ columns ได้เองด้วย

ส่วนตัวผม DataFrame คือหัวใจของ pandas ครับ ฟังก์ชันอื่นๆ อย่าง groupby, merge, pivot_table ทำงานบน DataFrame ทั้งหมด เรียนรู้ตัวนี้ให้แม่นก่อนเลย 😎

Leave a Reply

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