ข้อดีของ pandas dataframe ไปยังฐานข้อมูลเชิงสัมพันธ์ปกติ


13

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

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


5
หมีแพนด้าไม่ใช่ที่เก็บข้อมูล ปิดคอมพิวเตอร์ของคุณและจะไม่มีไฟล์ข้อมูลอยู่ที่นั่น หมีแพนด้าใช้ในการจำในหน่วยความจำ ซึ่งหมายความว่าถ้ามันไม่พอดีกับหน่วยความจำมันจะไม่ทำงาน แต่มันมีพี่ชายคนโตที่เรียกว่าสปาร์คดังนั้นมันจึงไม่ใช่เรื่องใหญ่ พี่ใหญ่ทำจริงสนับสนุน SQL และการเพิ่มประสิทธิภาพการค้นหา ดูเพิ่มเติมที่pandas.pydata.org/pandas-docs/stable/comparison_with_sql.html
Emre

คำตอบ:


8

ฉันคิดว่าหลักฐานของคำถามของคุณมีปัญหา Pandas ไม่ใช่ "ดาต้าสโตร์" ในแบบที่ RDBMS เป็น Pandas เป็นห้องสมุด Python สำหรับจัดการข้อมูลที่จะพอดีกับหน่วยความจำ ข้อเสีย:

  • นุ่นไม่มีข้อมูลอยู่ มันยังมีฟังก์ชั่น (ช้า) ที่เรียกว่า TO_SQL ที่จะเก็บเฟรมข้อมูลแพนด้าของคุณไว้ในตาราง RDBMS
  • Pandas จะจัดการกับผลลัพธ์ที่พอดีกับหน่วยความจำซึ่งง่ายต่อการเติม คุณสามารถใช้ dask เพื่อหลีกเลี่ยงปัญหานั้นหรือคุณสามารถทำงานกับข้อมูลใน RDBMS (ซึ่งใช้เทคนิคทุกประเภทเช่นพื้นที่ชั่วคราว) เพื่อทำงานกับข้อมูลที่เกิน RAM

2

จากแพนด้า ( หน้าหลัก )

ห้องสมุดการวิเคราะห์ข้อมูลไพ ธ อน¶

pandas เป็นโอเพ่นซอร์ส, ไลบรารี่ที่ได้รับลิขสิทธิ์จาก BSD ซึ่งมีโครงสร้างข้อมูลที่มีประสิทธิภาพสูงและใช้งานง่ายและเครื่องมือในการวิเคราะห์ข้อมูลสำหรับภาษา Python

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

ในตอนท้ายของหมีแพนด้านั้นมีวิธีการต่าง ๆ ที่สามารถใช้ในการดำเนินการพีชคณิตเชิงสัมพันธ์ที่สามารถเปรียบเทียบกับ SQL ได้

นอกจากนี้ Pandas ยังสะดวกต่อการเข้าถึงNumPyซึ่ง

เป็นแพ็คเกจพื้นฐานสำหรับการคำนวณทางวิทยาศาสตร์ด้วย Python มันมีในสิ่งอื่น ๆ :

  • ที่มีประสิทธิภาพวัตถุอาร์เรย์ N มิติ
  • ฟังก์ชั่นที่ซับซ้อน (กระจายเสียง)
  • เครื่องมือสำหรับการรวมรหัส C / C ++ และ Fortran
  • พีชคณิตเชิงเส้นที่มีประโยชน์การแปลงฟูริเยร์และความสามารถของตัวเลขแบบสุ่ม

2

นอกจากคำตอบที่ยอมรับแล้ว:

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

ในทางตรงกันข้ามหมีแพนด้า (เช่น R data.table) เป็นเหมือนที่เก็บคอลัมน์ในหน่วยความจำ หนึ่งคอลัมน์เป็นเพียงอาร์เรย์ของค่าและคุณสามารถใช้การดำเนินการ / รายชื่อ apprehensions vectorized อย่างรวดเร็วที่เข้าถึงเฉพาะค่าที่คุณต้องการจริงๆ เพียงแค่นั้นสำหรับตารางที่มีคอลัมน์ดั้งเดิมเพียงไม่กี่แห่งจะทำให้ฐานข้อมูลเชิงสัมพันธ์ช้าลงหลายครั้งสำหรับกรณีศึกษาด้านข้อมูลจำนวนมาก


2

Pandas เป็นเครื่องมือจัดเก็บข้อมูลในหน่วยความจำ สิ่งนี้ช่วยให้คุณทำการคำนวณที่รวดเร็วกว่าข้อมูลจำนวนมากได้อย่างรวดเร็ว

SQL (ปกติ) เก็บข้อมูลไว้อย่างต่อเนื่องและเป็นฐานข้อมูล นอกจากนี้ยังเป็นไปได้ที่จะรัน SQL db ในหน่วยความจำซึ่งอาจเร็วกว่าการใช้ pandas เช่น SQLite


0

SQL ช่วยให้คุณคงอยู่และทำธุรกรรมความสัมพันธ์ที่แตกต่างกันมากมายและพร้อมเสมอสำหรับการใช้งานที่แตกต่างกันหลายอย่าง โดยพื้นฐานแล้วเป็นแหล่งแห่งความจริงหรือสถานที่ที่ควรไป มีหัวมากกว่าแน่นอน อย่างไรก็ตามการวิเคราะห์บางอย่างอาจมีความซับซ้อนมากและต้องการการดำเนินการตามจำนวนที่กำหนดซึ่งสามารถเปลี่ยนแม้แต่ชุดข้อมูลขนาดเล็กให้กลายเป็นชุดข้อมูลขนาดใหญ่ได้อย่างรวดเร็ว ฉันมีกระบวนการข้อมูลที่มีมากกว่า 2000 แบบสอบถามที่ประมวลผลเทราไบต์ในเวลาน้อยกว่า 5 นาทีและสามารถทำคะแนนพันล้านเรคคอร์ดสำหรับแบบจำลองการทำนายในตอนท้ายและไพ ธ อนและ numpy ให้คะแนนของชุดข้อมูลในเวลา 10 เท่าเป็นที่เก็บข้อมูลเชิงสัมพันธ์ ให้บริการจนถึงเลเยอร์การนำเสนอ

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

ฉันเห็นหลายวิธีที่พวกเขาสามารถทำงานร่วมกันได้ งานด้านวิทยาศาสตร์ข้อมูลจำนวนมากเป็นสิ่งที่ Pandas ถูกออกแบบมาให้ทำ งานด้านวิทยาศาสตร์ข้อมูลบางงานเป็นสิ่งที่ RDB ได้รับการออกแบบมาให้ทำ ใช้ทั้งในยอดคงเหลือ

มันเป็นเรื่องของเครื่องมือที่เหมาะสมในการทำงานที่ถูกต้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.