แพนด้า 2.0 มาแล้ว

Feb 27 2023
Python Pandas 2.0 เพิ่งเปิดตัวและนี่คือสิ่งที่พวกเขาเพิ่มและปรับปรุง (สิ่งนี้จะเปลี่ยนแปลงหลายสิ่งหลายอย่าง) หากคุณทำงานในอุตสาหกรรมข้อมูล (วิศวกรรมข้อมูล/วิทยาศาสตร์/มล.) คุณอาจรู้อยู่แล้วว่า Pandas กำลังพูดถึงอะไรเป็นพิเศษเกี่ยวกับข้อมูล วิศวกรรม Pandas เคยได้รับความเกลียดชังอย่างมากเนื่องจากไม่ได้ให้ประสิทธิภาพที่เหมาะสมที่สุดในขณะที่ทำงานกับชุดข้อมูลขนาดใหญ่

Python Pandas 2.0 เพิ่งเปิดตัวและนี่คือสิ่งที่พวกเขาเพิ่มและปรับปรุง (สิ่งนี้จะเปลี่ยนแปลงหลายสิ่งหลายอย่าง)

ภาพถ่ายโดย Pascal Müller บน Unsplash

หากคุณทำงานในอุตสาหกรรมข้อมูล (วิศวกรรมข้อมูล/วิทยาศาสตร์/มล.) คุณอาจรู้อยู่แล้วว่าแพนด้าคืออะไร

เมื่อพูดถึง Data Engineering โดยเฉพาะ Pandas เคยได้รับความเกลียดชังเป็นอย่างมาก เพราะมันไม่ได้ให้ประสิทธิภาพที่ดีที่สุดในขณะที่ทำงานกับชุดข้อมูลขนาดใหญ่

Pandas 2.0 เป็นขั้นตอนในทิศทางนี้ นี่คือคุณสมบัติ 3 อันดับแรก

การดำเนินการที่รวดเร็วและมีประสิทธิภาพหน่วยความจำมากขึ้น

พวกเขาเพิ่มการรองรับ pyarrow ในส่วนหลัง

แบ็กเอนด์ pyarrow เป็นคุณลักษณะใหม่ใน pandas 2.0 ที่ช่วยให้ผู้ใช้สามารถใช้ Apache Arrow เป็นรูปแบบการจัดเก็บข้อมูลสำรองสำหรับ DataFrames และ Series ของ pandas

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

ไพโรว์คืออะไร?
Pyarrow เป็นไลบรารีที่มีรูปแบบหน่วยความจำแบบคอลัมน์ ซึ่งเป็นวิธีการจัดระเบียบข้อมูลที่ทำให้อ่านและประมวลผลแบบขนานได้ง่ายขึ้น

โดยสรุป การใช้ pyarrow backend ใน pandas 2.0 สามารถส่งผลให้การดำเนินการกับข้อมูลเร็วขึ้นและมีประสิทธิภาพมากขึ้น โดยเฉพาะอย่างยิ่งเมื่อทำงานกับชุดข้อมูลขนาดใหญ่

PyArrow ได้รับการสนับสนุน

การเพิ่มประสิทธิภาพการคัดลอกเมื่อเขียน

คล้ายกับ Spark และวิธีการรันโค้ด

เป็นเทคนิคการเพิ่มประสิทธิภาพหน่วยความจำที่ใช้ในแพนด้าเพื่อปรับปรุงประสิทธิภาพและลดการใช้หน่วยความจำเมื่อทำงานกับชุดข้อมูลขนาดใหญ่

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

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

โดยรวมแล้ว Copy-on-Write เป็นเทคนิคการเพิ่มประสิทธิภาพที่มีประสิทธิภาพซึ่งสามารถช่วยให้คุณทำงานกับชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพมากขึ้นและใช้หน่วยความจำน้อยลง

คัดลอกบนเขียน

ดัชนีสามารถเก็บประเภทตัวเลข NumPy ได้แล้ว

สรุปอย่างรวดเร็ว: ดัชนีที่ดีขึ้น การเข้าถึงที่เร็วขึ้น และการคำนวณ

รายละเอียด:
Pandas 2.0 อนุญาตให้ Index เก็บ dtype ตัวเลข NumPy ใดๆ รวมถึง int8, int16, int32, int64, uint8, uint16, uint32, uint64, float32 และ float64

ก่อนหน้านี้รองรับเฉพาะประเภท int64, uint64 และ float64

ด้วยเหตุนี้ การดำเนินการที่สร้างดัชนี 64 บิตก่อนหน้านี้จึงสามารถสร้างดัชนีที่มีขนาดบิตต่ำกว่าได้ เช่น ดัชนี 32 บิต

ดัชนี NumPy

TL;DR
1. เพิ่ม pyarrow ใน backed ทำให้การทำงานเร็วขึ้นและมีประสิทธิภาพหน่วยความจำมากขึ้น
2. Copy-on-Write Optimization: คล้ายกับ Spark และวิธีการรันโค้ด
3. ตอนนี้ Index สามารถเก็บประเภทตัวเลข NumPy ส่งผลให้การดำเนินการเร็วขึ้น

ฉันจะเพิ่มบทช่วยสอนเกี่ยวกับคุณสมบัติเหล่านี้ในหลักสูตร Python for Data Engineering ของฉันด้วย

หากคุณต้องการเรียนรู้ทุกอย่างเกี่ยวกับ Python สำหรับ Data Engineering ให้ตรวจสอบ

https://learn.datawithdarshil.com/courses/Python-for-Data-Engineering