โครงสร้างข้อมูลของ Pandas (Python ม.3)

Pandas คืออะไร?
Pandas เป็นไลบรารีในภาษา Python ที่ใช้สำหรับการจัดการและวิเคราะห์ข้อมูลในรูปแบบตาราง (Tabular Data) เช่น ไฟล์ CSV และ Excel Pandas ช่วยให้การจัดการข้อมูลมีความง่ายและสะดวก โดยมีสองโครงสร้างข้อมูลสำคัญคือ Series และ DataFrame


1. โครงสร้างข้อมูล Series

Series เป็นโครงสร้างข้อมูลแบบหนึ่งมิติ (1D) ที่มีดัชนี (Index) กำกับในแต่ละค่า คล้ายกับ List หรือ Dictionary

import pandas as pd

# สร้าง Series
scores = pd.Series([90, 85, 88], index=["John", "Mary", "Anna"])
print(scores)

# การเข้าถึงข้อมูลด้วย Index
print("คะแนนของ Mary:", scores["Mary"])

ผลลัพธ์:

John    90  
Mary    85  
Anna    88  
dtype: int64  

คะแนนของ Mary: 85  

import pandas as pd

# สร้าง Series เก็บเฉพาะคะแนน
grades = pd.Series([85, 90, 78, 88, 92])

# แสดง Series
print(grades)

Output:

0    85
1    90
2    78
3    88
4    92
dtype: int64

ใน Series นี้:

  • ดัชนี (Index) จะเป็นค่าตั้งต้น (0, 1, 2, ...) ที่ pandas กำหนดอัตโนมัติ
  • ค่าใน Series จะเก็บเฉพาะคะแนน (85, 90, 78, ...) ครับ

2. โครงสร้างข้อมูล DataFrame

DataFrame เป็นโครงสร้างข้อมูลแบบสองมิติ (2D) ที่มีลักษณะคล้ายกับตาราง มีทั้งแถวและคอลัมน์

import pandas as pd

# สร้าง DataFrame
data = {
    "Name": ["John", "Mary", "Anna"],
    "Score": [90, 85, 88]
}
df = pd.DataFrame(data)
print(df)

# การเข้าถึงข้อมูลใน DataFrame
print("คะแนนของ John:", df.loc[0, "Score"])

ผลลัพธ์:

   Name  Score  
0  John     90  
1  Mary     85  
2  Anna     88  

คะแนนของ John: 90  

import pandas as pd

# ข้อมูลชื่อประเทศและเมืองหลวงในอาเซียน
data = [
    ['Brunei', 'Bandar Seri Begawan'],
    ['Cambodia', 'Phnom Penh'],
    ['Indonesia', 'Jakarta'],
    ['Laos', 'Vientiane'],
    ['Malaysia', 'Kuala Lumpur'],
    ['Myanmar', 'Naypyidaw'],
    ['Philippines', 'Manila'],
    ['Singapore', 'Singapore'],
    ['Thailand', 'Bangkok'],
    ['Vietnam', 'Hanoi']
]

# สร้าง DataFrame
asean_countries = pd.DataFrame(data, columns=['Country', 'Capital'])

# แสดง DataFrame
print(asean_countries)

Output:

      Country              Capital
0      Brunei  Bandar Seri Begawan
1    Cambodia           Phnom Penh
2   Indonesia              Jakarta
3        Laos            Vientiane
4    Malaysia         Kuala Lumpur
5     Myanmar            Naypyidaw
6  Philippines              Manila
7   Singapore            Singapore
8    Thailand              Bangkok
9     Vietnam                Hanoi
import pandas as pd

# ข้อมูลสัตว์ป่าสงวนของไทย
data = [
    ['สมัน', 'Schomburgk\'s Deer'],
    ['กูปรี', 'Kouprey'],
    ['กระซู่', 'Sumatran Rhinoceros'],
    ['เลียงผา', 'Serow'],
    ['นกเจ้าฟ้าหญิงสิรินธร', 'Princess Sirindhorn Bird'],
    ['สมเสร็จ', 'Malayan Tapir'],
    ['ควายป่า', 'Wild Water Buffalo'],
    ['นกแต้วแล้วท้องดำ', 'Gurney\'s Pitta'],
    ['พะยูน', 'Dugong'],
    ['เต่ามะเฟือง', 'Leatherback Turtle'],
    ['ลิงอ้ายเงี้ยะ', 'Pileated Gibbon'],
    ['จระเข้น้ำจืด', 'Siamese Crocodile'],
    ['แรด', 'Javan Rhinoceros']
]

# สร้าง DataFrame
wildlife_conservation = pd.DataFrame(data, columns=['ชื่อภาษาไทย', 'ชื่อภาษาอังกฤษ'])

# แสดงผลลัพธ์
print(wildlife_conservation)

ผลลัพธ์:

          ชื่อภาษาไทย                      ชื่อภาษาอังกฤษ
0               สมัน              Schomburgk's Deer
1              กูปรี                        Kouprey
2              กระซู่          Sumatran Rhinoceros
3             เลียงผา                          Serow
4  นกเจ้าฟ้าหญิงสิรินธร    Princess Sirindhorn Bird
5            สมเสร็จ                 Malayan Tapir
6            ควายป่า        Wild Water Buffalo
7  นกแต้วแล้วท้องดำ             Gurney's Pitta
8              พะยูน                          Dugong
9          เต่ามะเฟือง         Leatherback Turtle
10       ลิงอ้ายเงี้ยะ            Pileated Gibbon
11      จระเข้น้ำจืด          Siamese Crocodile
12               แรด            Javan Rhinoceros

3. การดำเนินการกับ DataFrame

เพิ่มข้อมูลใน DataFrame:

df["Subject"] = ["Math", "Science", "English"]
print(df)

ลบข้อมูลใน DataFrame:

df = df.drop(columns=["Subject"])
print(df)

การกรองข้อมูลใน DataFrame:

high_scores = df[df["Score"] > 85]
print(high_scores)

ข้อดีของ Pandas

  1. ช่วยให้การจัดการข้อมูลที่ซับซ้อนเป็นเรื่องง่าย
  2. รองรับการนำเข้าข้อมูลจากหลายแหล่ง เช่น CSV, Excel
  3. มีฟังก์ชันหลากหลายสำหรับการจัดการและวิเคราะห์ข้อมูล

แบบฝึกหัดท้ายใบความรู้

  1. สร้าง Series ที่เก็บคะแนนของนักเรียน 3 คน พร้อมระบุชื่อเป็นดัชนี
  2. สร้าง DataFrame ที่เก็บข้อมูลชื่อ วิชา และคะแนนของนักเรียน 3 คน
  3. เพิ่มคอลัมน์ใหม่ใน DataFrame เพื่อระบุเกรดของนักเรียน

คุณสมบัติSeriesDataFrame
มิติหนึ่งมิติ (1D)สองมิติ (2D)
ข้อมูลที่เก็บได้ข้อมูลรายการเดี่ยว เช่น คะแนน, ราคาข้อมูลเชิงตาราง เช่น ชื่อคนและเบอร์โทร หรือ ประเทศกับเมืองหลวง
การเข้าถึงข้อมูลใช้ index เพื่อระบุใช้ index และ column เพื่อระบุ
การใช้งานเหมาะกับข้อมูลเดี่ยว มีลักษณะเป็น listเหมาะกับข้อมูลตาราง มีแถวและคอลัมน์

สรุป

  • ใช้ Series เมื่อข้อมูลมีเพียงมิติเดียว (เช่น คะแนนวิชาเดียว, ราคา 1 ชุด)
  • ใช้ DataFrame เมื่อข้อมูลเป็นตารางที่มีหลายคอลัมน์ (เช่น ตารางคะแนนหลายวิชา, รายละเอียดนักเรียน)

ถ้าต้องการข้อมูลขนาดใหญ่ในอนาคต DataFrame จะยืดหยุ่นมากกว่าเพราะสามารถเพิ่มคอลัมน์ได้ง่ายครับ!

สรุป
Pandas เป็นเครื่องมือที่ทรงพลังในการจัดการข้อมูล โดยมีโครงสร้างข้อมูลหลักอย่าง Series และ DataFrame ที่ช่วยให้นักเรียนสามารถดำเนินการต่าง ๆ กับข้อมูลได้อย่างง่ายดายและมีประสิทธิภาพ การเรียนรู้การใช้งาน Pandas จะช่วยให้นักเรียนสามารถนำไปประยุกต์ใช้ในงานด้านการวิเคราะห์ข้อมูล และพัฒนาทักษะการจัดการข้อมูลในสถานการณ์จริงได้อย่างมืออาชีพ