Dalam Ilmu Data, banyak yang tampaknya menggunakan kerangka data panda sebagai datastore. Apa saja fitur panda yang menjadikannya datastore unggul dibandingkan dengan basis data relasional biasa seperti MySQL , yang digunakan untuk menyimpan data di banyak bidang pemrograman lainnya?
Sementara panda memang menyediakan beberapa fungsi yang berguna untuk eksplorasi data, Anda tidak bisa menggunakan SQL dan Anda kehilangan fitur seperti optimasi kueri atau pembatasan akses.
Jawaban:
Saya pikir premis pertanyaan Anda memiliki masalah. Panda bukan "datastore" seperti halnya RDBMS. Pandas adalah pustaka Python untuk memanipulasi data yang sesuai dengan memori. Kekurangan:
sumber
Dari panda ( Halaman Utama )
Sementara panda pasti dapat mengakses data melalui SQL, atau dari beberapa metode penyimpanan data lainnya, tujuan utamanya adalah untuk membuatnya lebih mudah ketika menggunakan Python untuk melakukan analisis data.
Untuk itu panda memiliki berbagai metode yang tersedia yang memungkinkan beberapa operasi aljabar relasional yang dapat dibandingkan dengan SQL.
Pandas juga menyediakan akses mudah ke NumPy , yang
sumber
Selain jawaban yang diterima:
Database relasional memiliki sejumlah besar byte overhead per-baris (contoh: pertanyaan ini ), yang digunakan untuk pembukuan, memberi tahu nol dari bukan nol, memastikan standar seperti ACID . Setiap kali Anda membaca / menulis kolom, tidak hanya beberapa byte yang mewakili nilai kolom ini akan dibaca, tetapi juga byte pembukuan ini akan diakses dan mungkin diperbarui.
Sebaliknya, panda (juga R data.table) lebih seperti penyimpanan kolom dalam memori. Satu kolom hanyalah sebuah array nilai dan Anda dapat menggunakan apprehensions / operasi daftar vektor cepat numpy yang hanya mengakses nilai yang benar-benar Anda butuhkan. Hanya saja untuk tabel dengan beberapa kolom primitif membuat database relasional beberapa kali lebih lambat untuk banyak kasus penggunaan sains data.
sumber
Panda adalah alat penyimpanan data dalam memori. Ini memungkinkan Anda untuk melakukan perhitungan yang sangat cepat atas sejumlah besar data dengan sangat cepat.
SQL (biasanya) secara terus-menerus menyimpan data dan merupakan basis data. Dimungkinkan juga untuk menjalankan SQL db dalam memori yang mungkin lebih cepat daripada menggunakan panda, seperti SQLite.
sumber
SQL memungkinkan Anda untuk bertahan dan melakukan banyak transaksi hubungan yang berbeda dan selalu siap tersedia untuk berbagai kegunaan yang berbeda. Pada dasarnya satu sumber kebenaran atau tempat untuk dituju. Ada di atas kepala pasti. Namun, beberapa analisis bisa sangat rumit dan membutuhkan sejumlah besar operasi berbasis set yang dapat mengubah bahkan set data kecil menjadi besar dengan sangat cepat. Saya telah memiliki proses data yang memiliki lebih dari 2000 kueri yang memproses terabyte dalam waktu kurang dari 5 menit dan dapat mencetak miliaran catatan untuk model prediktif di akhir dan python dan numpy mencetak sebagian kecil dari dataset dalam waktu 10x sebagai penyimpanan data relasional dan sajikan hingga lapisan presentasi.
Poin tambahan, jika melakukan ini di cloud pastikan Anda memiliki instance dinamis yang dapat meningkatkan skala memorinya. Dengan SQL itu semua tentang memiliki disk dan cukup menghitung untuk menyelesaikannya tepat waktu.
Saya melihat banyak cara agar mereka bisa bekerja secara sinergis. Banyak pekerjaan ilmu data yang dirancang untuk dilakukan oleh Pandas. Beberapa pekerjaan ilmu data adalah apa yang dirancang RDB untuk dilakukan. Gunakan keduanya dalam keseimbangan.
Ini semua tentang alat yang tepat untuk melakukan pekerjaan yang benar.
sumber