Panda veri çerçevesinin düzenli ilişkisel veritabanına avantajları


13

Veri Biliminde, birçok kişi veri deposu olarak panda veri çerçevelerini kullanıyor gibi görünüyor . Diğer programlama alanlarında veri depolamak için kullanılan MySQL gibi düzenli ilişkisel veritabanlarına kıyasla onu üstün bir veri deposu yapan pandaların özellikleri nelerdir ?

Pandalar veri keşfi için bazı yararlı işlevler sunarken, SQL'i kullanamazsınız ve sorgu optimizasyonu veya erişim kısıtlaması gibi özellikleri kaybedersiniz.


5
pandalar bir veri deposu değildir. Bilgisayarınızı kapatın, veri çerçeveniz orada olmayacaktır. pandalar hafızada munging içindir. Yani hafızaya sığmazsa çalışmaz. Ama Spark adında büyük bir erkek kardeşi var, bu yüzden önemli değil. Büyük kardeş aslında SQL ve sorgu optimizasyonunu destekliyor. Ayrıca bkz pandas.pydata.org/pandas-docs/stable/comparison_with_sql.html
Emre

Yanıtlar:


8

Sorunuzun öncülünün bir sorunu olduğunu düşünüyorum. Pandalar bir RDBMS'de olduğu gibi bir "veri deposu" değildir. Pandalar, belleğe sığacak verileri işlemek için bir Python kütüphanesidir. Dezavantajları:

  • Pandalar veriyi sürdürmez. Hatta panda veri çerçevenizi bir RDBMS tablosuna devam ettirecek TO_SQL adlı (yavaş) bir işleve sahiptir.
  • Pandalar yalnızca belleğe uyan ve doldurması kolay olan sonuçları işleyecektir. Bu sorunu gidermek için dask kullanabilirsiniz ya da RAM'i aşan veriler üzerinde çalışmak için RDBMS'deki (geçici alan gibi her türlü numarayı kullanan) veriler üzerinde çalışabilirsiniz.

2

Pandalardan ( Ana Sayfa )

Python Veri Analizi Kütüphanesi¶

pandas, Python programlama dili için yüksek performanslı, kullanımı kolay veri yapıları ve veri analiz araçları sağlayan açık kaynaklı, BSD lisanslı bir kütüphanedir.

Pandalar verilere SQL yoluyla veya diğer birkaç veri depolama yönteminden kesinlikle erişebilirken, birincil amacı veri analizi yapmak için Python kullanırken daha kolay hale getirmektir.

Bu amaçla pandalar, SQL ile karşılaştırılabilecek bazı ilişkisel cebir işlemlerine izin veren çeşitli yöntemlere sahiptir .

Ayrıca Pandalar kolay erişim sağlar numpy , hangi

Python ile bilimsel hesaplama için temel pakettir. Diğer şeylerin yanı sıra şunları içerir:

  • güçlü bir N-boyutlu dizi nesnesi
  • gelişmiş (yayın) fonksiyonlar
  • C / C ++ ve Fortran kodunu entegre etmek için araçlar
  • kullanışlı doğrusal cebir, Fourier dönüşümü ve rasgele sayı özellikleri

2

Kabul edilen cevaba ek olarak:

İlişkisel veritabanları, defter tutma, boş değerlerden boş değer bildirme ve ACID gibi standartların sağlanması için kullanılan çok sayıda bayt başına satır başı ek yüküne sahiptir (örnek: bu soru ) . Bir sütunu her okuduğunuzda / yazdığınızda, bu sütunun değerini temsil eden yalnızca birkaç bayt değil, aynı zamanda bu defter tutma baytlarına erişilir ve muhtemelen güncellenir.

Buna karşılık, pandalar (ayrıca R data.table) daha çok bellek içi bir sütun deposuna benzer. Bir sütun sadece bir değerler dizisidir ve yalnızca gerçekten ihtiyacınız olan değerlere erişen hızlı numect vektörize işlemleri / liste endişelerini kullanabilirsiniz. Sadece birkaç ilkel sütunu olan tablolar için, birçok veri bilimi kullanım durumu için ilişkisel veritabanlarını birkaç kat daha yavaş hale getirir.


2

Pandalar bir bellek içi veri depolama aracıdır. Bu, büyük miktarda veri üzerinde çok hızlı bir şekilde çok hızlı hesaplamalar yapmanızı sağlar.

SQL (genellikle) sürekli olarak veri depolar ve bir veritabanıdır. SQLite gibi pandaları kullanmaktan daha hızlı olabilecek bir bellek içi SQL db çalıştırmak da mümkündür.


0

SQL devam etmenize ve birçok farklı ilişki işlemi gerçekleştirmenize ve her zaman birden fazla farklı kullanım için hazır olmasını sağlar. Esasen gidilecek bir gerçek veya yer kaynağı. Kesinlikle başın üstünde var. Bununla birlikte, bazı analizler çok karmaşık olabilir ve küçük bir veri setini bile çok hızlı bir şekilde büyük bir veri setine dönüştürebilen önemli miktarda set tabanlı işlem gerektirir. Terabaytları 5 dakikadan daha az bir sürede işleyen ve sonunda tahmini bir model için milyarlarca kayıt alan 2000'den fazla sorguya sahip veri süreçlerim oldu ve python ve numpy, ilişkisel bir veri deposu olarak veri kümesinin bir kısmını 10x sürede puanladı ve bir sunum katmanına sunun.

Ek bir nokta, bunu bulutta yapıyorsa, belleğini ölçeklendirebilecek dinamik bir örneğiniz olduğundan emin olun. SQL ile her şey diske ve zamanında yapmak için yeterli hesaplama ile ilgilidir.

Sinerjide çalışabilmeleri için birçok yol görüyorum. Birçok veri bilimi işi, Pandaların yapmak için tasarlandığı şeydir. Bazı veri bilimi işleri RDB'lerin yapmak için tasarlandığı şeydir. Her ikisini de dengede kullanın.

Her şey doğru işi yapmak için doğru araçla ilgilidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.