Pandas (ซอฟต์แวร์)

Overview

pandas เป็นไลบรารีฟรีและโอเพนซอร์สสำหรับภาษาไพทอน ใช้สำหรับการจัดการข้อมูล การแปลงข้อมูล และการวิเคราะห์ข้อมูล โดยเฉพาะข้อมูลแบบตารางและอนุกรมเวลา ไลบรารีนี้มีโครงสร้างข้อมูลหลัก เช่น Series และ DataFrame ซึ่งช่วยให้ผู้ใช้จัดเก็บ เลือก กรอง รวม จัดกลุ่ม และสรุปข้อมูลได้ในรูปแบบที่คล้ายการทำงานกับตารางข้อมูลหรือฐานข้อมูลเชิงสัมพันธ์

pandas
ผู้ออกแบบเวส แม็กคินนีย์
นักพัฒนาชุมชนผู้พัฒนา
วันที่เปิดตัว2008
ภาษาที่เขียนภาษาไพทอน, ไซทอน, ภาษาซี
ระบบปฏิบัติการข้ามแพลตฟอร์ม
ประเภทการวิเคราะห์ข้อมูล, การคำนวณเชิงตัวเลข
สัญญาอนุญาตสัญญาอนุญาตบีเอสดี 3 ข้อ
เว็บไซต์pandas.pydata.org
ที่เก็บข้อมูล

pandas (อ่านว่า "แพนดาส์") เป็นไลบรารีฟรีและโอเพนซอร์สสำหรับภาษาไพทอน ใช้สำหรับการจัดการข้อมูล การแปลงข้อมูล และการวิเคราะห์ข้อมูล โดยเฉพาะข้อมูลแบบตารางและอนุกรมเวลา ไลบรารีนี้มีโครงสร้างข้อมูลหลัก เช่น Series และ DataFrame ซึ่งช่วยให้ผู้ใช้จัดเก็บ เลือก กรอง รวม จัดกลุ่ม และสรุปข้อมูลได้ในรูปแบบที่คล้ายการทำงานกับตารางข้อมูลหรือฐานข้อมูลเชิงสัมพันธ์[1][2]

pandas เป็นส่วนหนึ่งของระบบนิเวศวิทยาศาสตร์ข้อมูลของไพทอน และมักใช้ร่วมกับไลบรารีอื่น เช่น NumPy, SciPy, matplotlib, scikit-learn และ Jupyter[1] ชื่อ "pandas" มาจากคำว่า "panel data" ซึ่งเป็นคำในเศรษฐมิติสำหรับชุดข้อมูลที่เก็บข้อสังเกตของหน่วยเดียวกันหลายช่วงเวลา และยังพ้องกับวลี "Python data analysis"[3]

ประวัติ

เวส แม็กคินนีย์เริ่มพัฒนา pandas ขณะทำงานที่บริษัท AQR Capital Management เนื่องจากต้องการเครื่องมือที่ยืดหยุ่นและมีประสิทธิภาพสำหรับการวิเคราะห์ข้อมูลทางการเงินในไพทอน[4] โครงการเริ่มต้นในช่วงปลายคริสต์ทศวรรษ 2000 และเปิดเผยซอร์สโค้ดแก่สาธารณะในเวลาต่อมา ทำให้กลายเป็นหนึ่งในเครื่องมือสำคัญของการวิเคราะห์ข้อมูลด้วยไพทอน[4][3]

ในปี 2015 pandas เข้าร่วมเป็นโครงการที่ได้รับการสนับสนุนทางการเงินภายใต้ NumFOCUS องค์กรไม่แสวงหากำไรในสหรัฐอเมริกาที่สนับสนุนโครงการโอเพนซอร์สด้านวิทยาศาสตร์ข้อมูลและการคำนวณเชิงวิทยาศาสตร์[5]

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

pandas มีโครงสร้างข้อมูลหลักสองชนิด ได้แก่ Series และ DataFrame โครงสร้างเหล่านี้ออกแบบมาสำหรับข้อมูลที่มีป้ายกำกับ เช่น ชื่อแถว ชื่อคอลัมน์ หรือดัชนีเวลา จึงเหมาะกับงานที่ต้องอ่านข้อมูลจากแหล่งต่าง ๆ แล้วนำมาจัดรูปแบบเพื่อวิเคราะห์ต่อ[1][2]

Series

Series เป็นโครงสร้างข้อมูลหนึ่งมิติที่เก็บค่าลำดับหนึ่งชุดพร้อมดัชนีหรือป้ายกำกับของแต่ละค่า อาจมองได้ว่าเป็นอาร์เรย์ที่มีชื่อกำกับตำแหน่งข้อมูล การมีดัชนีทำให้ Series รองรับการเลือกข้อมูลด้วยป้ายกำกับ การคำนวณระหว่างชุดข้อมูล และการจัดแนวข้อมูลตามดัชนีก่อนคำนวณ[3][2]

DataFrame

DataFrame เป็นโครงสร้างข้อมูลสองมิติในรูปตาราง มีแถวและคอลัมน์ที่มีป้ายกำกับ แต่ละคอลัมน์อาจมีชนิดข้อมูลต่างกัน เช่น จำนวนเต็ม จำนวนจริง ข้อความ หรือค่าบูลีน โครงสร้างนี้เป็นส่วนที่ใช้แพร่หลายที่สุดของ pandas เพราะใกล้เคียงกับตารางในสเปรดชีต ตารางฐานข้อมูล หรือข้อมูลแบบซีเอสวี[1][3]

DataFrame สามารถสร้างจากข้อมูลหลายรูปแบบ เช่น รายการ พจนานุกรม อาร์เรย์ของ NumPy ไฟล์ CSV ไฟล์ Excel ฐานข้อมูล SQL หรือไฟล์รูปแบบอื่นที่ใช้ในงานวิเคราะห์ข้อมูล[6] ผู้ใช้สามารถเลือกแถวและคอลัมน์ด้วยดัชนีหรือป้ายกำกับ กรองข้อมูลตามเงื่อนไข รวมตาราง จัดกลุ่มข้อมูล สรุปสถิติ และแปลงรูปแบบข้อมูลระหว่างรูปแบบกว้างกับรูปแบบยาวได้[2]

ความสามารถ

pandas รองรับงานเตรียมข้อมูลและวิเคราะห์ข้อมูลหลายประเภท เช่น การอ่านและเขียนไฟล์ การจัดการค่าที่หายไป การจัดกลุ่มและสรุปข้อมูล การเรียงลำดับ การรวมตาราง การแปลงชนิดข้อมูล และการจัดการอนุกรมเวลา[1][3] ในงานจริง pandas มักใช้เป็นขั้นตอนกลางระหว่างข้อมูลดิบกับการสร้างกราฟ การทำสถิติ หรือการสร้างแบบจำลองการเรียนรู้ของเครื่อง[2]

งานจัดกลุ่มข้อมูลใน pandas ใช้แนวคิดแบบ "split-apply-combine" คือแบ่งข้อมูลออกเป็นกลุ่ม ใช้ฟังก์ชันกับแต่ละกลุ่ม แล้วรวมผลลัพธ์กลับมาเป็นตารางหรือชุดข้อมูลใหม่ แนวคิดนี้ทำให้ pandas เหมาะกับการสรุปข้อมูลตามหมวดหมู่ เช่น การหาค่าเฉลี่ยรายกลุ่ม การนับจำนวนรายการ หรือการเปรียบเทียบข้อมูลตามช่วงเวลา[3]

สำหรับข้อมูลเวลา pandas มีเครื่องมือสำหรับสร้างช่วงเวลา เลือกข้อมูลตามวันที่ แปลงความถี่ของข้อมูล และสรุปข้อมูลเป็นรายวัน รายสัปดาห์ รายเดือน หรือช่วงเวลาอื่น จึงใช้ได้กับข้อมูลทางการเงิน วิทยาศาสตร์ สังคมศาสตร์ และงานรายงานเชิงธุรกิจที่มีมิติของเวลา[3]

การใช้งาน

pandas มักถูกนำเข้าในไพทอนด้วยชื่อย่อ pd ตามธรรมเนียมที่ใช้ทั่วไปในเอกสารและตัวอย่างโค้ดของชุมชน[6]

import pandas as pd

df = pd.DataFrame({
    "name": ["Alice", "Bob", "Charlie"],
    "score": [85, 92, 78]
})

df[df["score"] >= 80]

ตัวอย่างนี้สร้าง DataFrame จากข้อมูลในรูปพจนานุกรม และเลือกเฉพาะแถวที่ค่าคะแนนตั้งแต่ 80 ขึ้นไป ตัวอย่างลักษณะนี้แสดงแนวคิดพื้นฐานของ pandas คือการแทนข้อมูลเป็นตาราง แล้วเลือกหรือแปลงข้อมูลด้วยนิพจน์ของไพทอน

ข้อจำกัดและการวิจารณ์

แม้ pandas จะใช้แพร่หลายมากในงานวิเคราะห์ข้อมูล แต่มีข้อจำกัดด้านประสิทธิภาพเมื่อข้อมูลมีขนาดใหญ่เกินหน่วยความจำของเครื่อง เนื่องจากการทำงานโดยทั่วไปคาดว่าข้อมูลจำนวนมากจะอยู่ในหน่วยความจำหลัก นอกจากนี้ pandas ไม่ได้ออกแบบเป็นระบบประมวลผลแบบกระจาย และไม่ได้มีตัววางแผนคำสั่งค้นหาแบบฐานข้อมูลเชิงสัมพันธ์หรือระบบประมวลผลข้อมูลสมัยใหม่บางชนิด[7] งานวิจัยเปรียบเทียบไลบรารี DataFrame บนเครื่องเดี่ยวพบว่า pandas ยังเป็นตัวเลือกที่fuสำหรับข้อมูลขนาดเล็กและมีเอพีไอ (API) สมบูรณ์ แต่เมื่อข้อมูลมีขนาดใหญ่หรือผู้ใช้ต้องการการปรับแผนประมวลผลและประสิทธิภาพสูง ไลบรารีอื่น เช่น Polars, cuDF หรือ PySpark อาจเหมาะสมกว่าในบางกรณี[8]

สัญญาอนุญาตและการกำกับดูแล

pandas เผยแพร่ภายใต้สัญญาอนุญาตบีเอสดี 3 ข้อ ซึ่งเป็นสัญญาอนุญาตโอเพนซอร์สแบบผ่อนปรน[9] โครงการมีการพัฒนาโดยชุมชนผู้ร่วมพัฒนา และอยู่ภายใต้การสนับสนุนทางการเงินและการบริหารบางส่วนของ NumFOCUS[5]

ดูเพิ่ม

อ้างอิง

  1. 1 2 3 4 5 "Getting Started with pandas". O'Reilly Media. สืบค้นเมื่อ 8 กรกฎาคม 2026.
  2. 1 2 3 4 5 VanderPlas, Jake (2016). Python Data Science Handbook: Essential Tools for Working with Data. O'Reilly Media. ISBN 978-1-4919-1205-8.
  3. 1 2 3 4 5 6 7 McKinney, Wes (2022). Python for Data Analysis: Data Wrangling with pandas, NumPy, and Jupyter (พิมพ์ครั้งที่ 3rd). O'Reilly Media. ISBN 978-1-0981-0403-0.
  4. 1 2 Kopf, Dan (8 ธันวาคม 2017). "Meet the man behind the most important tool in data science". Quartz. สืบค้นเมื่อ 8 กรกฎาคม 2026.
  5. 1 2 "NumFOCUS Announces New Fiscally Sponsored Project: pandas". NumFOCUS. 9 ตุลาคม 2015. สืบค้นเมื่อ 8 กรกฎาคม 2026.
  6. 1 2 "Package overview". pandas documentation. สืบค้นเมื่อ 8 กรกฎาคม 2026.
  7. McKinney, Wes (21 กันยายน 2017). "Apache Arrow and the "10 Things I Hate About pandas"". wesmckinney.com. สืบค้นเมื่อ 8 กรกฎาคม 2026.
  8. Mozzillo, Angelo; Zecchini, Luca; Gagliardelli, Luca; Aslam, Adeel; Bergamaschi, Sonia; Simonini, Giovanni (2023). "Evaluation of Dataframe Libraries for Data Preparation on a Single Machine". arXiv:2312.11122 [cs.DB].
  9. "Package overview: License". pandas documentation. สืบค้นเมื่อ 8 กรกฎาคม 2026.

แหล่งข้อมูลอื่น