Pandaları kullanan “büyük veri” iş akışları

| | | | | | | | |

Aylardır pandaları öğrenirken bu sorunun cevabını bulmaya çalıştım. SAS'ı günlük işlerim için kullanıyorum ve çekirdek dışı desteği için harika. Ancak SAS, birçok başka nedenden dolayı bir yazılım parçası olarak korkunç.

Bir gün SAS kullanımımı python ve pandalar ile değiştirmeyi umuyorum, ancak şu anda büyük veri kümeleri için çekirdek dışı bir iş akışına sahip değilim. belleğe sığıyor ama bir sabit sürücüye sığacak kadar küçük.

İlk düşüncem, büyük veri kümelerini diskte tutmak ve yalnızca ihtiyacım olan parçaları veri çerçevelerine çekmek için HDFStore kullanmak. analiz için. Diğerleri, kullanımı daha kolay bir alternatif olarak MongoDB'den bahsetti. Sorum şu:

Aşağıdakileri gerçekleştirmek için en iyi uygulamalı iş akışlarından bazıları nelerdir:

  1. Düz dosyaları kalıcı, disk üzerindeki bir veritabanı yapısına yükleme
  2. Bir pandaların veri yapısını besleyecek verileri almak için bu veritabanını sorgulamak
  3. Pandalardaki parçaları manipüle ettikten sonra veritabanını güncellemek

Gerçek dünyadan örnekler çok takdir edilecektir. , özellikle "büyük veri" üzerinde panda kullanan herkesten.

Düzenle -- bunun nasıl çalışmasını istediğime bir örnek:

  1. Yinelemeli olarak büyük bir düz- dosyalayın ve kalıcı, disk üzerindeki bir veritabanı yapısında saklayın. Bu dosyalar genellikle belleğe sığmayacak kadar büyüktür.
  2. Panda'ları kullanmak için, bu verilerin belleğe sığabilecek alt kümelerini (genellikle bir seferde yalnızca birkaç sütun) okumak istiyorum.
  3. Seçili sütunlar üzerinde çeşitli işlemler yaparak yeni sütunlar oluştururdum.
  4. Ardından bu yeni sütunları veritabanı yapısına eklemem gerekirdi.

Bu adımları gerçekleştirmenin en iyi yolunu bulmaya çalışıyorum. Pandalar ve pytables ile ilgili bağlantıları okumak, yeni bir sütun eklemek sorun olabilir gibi görünüyor.

Düzenle -- Jeff'in sorularını özel olarak yanıtlamak:

  1. Tüketici oluşturuyorum kredi riski modelleri Veri türleri arasında telefon, SSN ve adres özellikleri, mülk değerleri, sabıka kayıtları, iflaslar vb. gibi aşağılayıcı bilgiler bulunur... Her gün kullandığım veri kümeleri, ortalama olarak yaklaşık 1.000 ila 2.000 alana sahip karma veri türleri: hem sayısal hem de karakter verilerinin sürekli, nominal ve sıralı değişkenleri. Nadiren satır ekliyorum, ancak yeni sütunlar oluşturan birçok işlem gerçekleştiriyorum.
  2. Tipik işlemler, koşullu mantık kullanarak birkaç sütunu yeni bir bileşikte birleştirmeyi içerir. sütun. Örneğin, var1 >2 ise, yenivar = "A" elif var2 = 4 ise yenivar = "B". Bu işlemlerin sonucu, veri kümemdeki her kayıt için yeni bir sütundur.
  3. Son olarak, bu yeni sütunları disk üzerindeki veri yapısına eklemek istiyorum. d Modelle ilginç, sezgisel ilişkiler bulmaya çalışan çapraz tablolar ve tanımlayıcı istatistiklerle verileri keşfederek 2. adımı tekrarlayın.
  4. Tipik bir proje dosyası genellikle yaklaşık 1 GB'dir. Dosyalar, bir satırın tüketici verilerinin bir kaydından oluştuğu şekilde düzenlenir. Her satır, her kayıt için aynı sayıda sütuna sahiptir. Bu her zaman böyle olacaktır.
  5. Yeni bir sütun oluştururken satırlara göre alt gruplara ayırmam oldukça nadirdir. Ancak, raporlar oluştururken veya açıklayıcı bilgiler oluştururken satırları alt kümelere ayırmam oldukça yaygındır. İstatistik. Örneğin, Perakende kredi kartları gibi belirli bir iş kolu için basit bir frekans oluşturmak isteyebilirim. Bunu yapmak için, raporlamak istediğim sütunlara ek olarak yalnızca iş alanının = perakende olduğu kayıtları seçerdim. Ancak yeni sütunlar oluştururken, tüm veri satırlarını ve yalnızca işlemler için ihtiyaç duyduğum sütunları çekerdim.
  6. Modelleme süreci, her sütunu analiz etmemi, bazı sonuç değişkenleriyle ilginç ilişkiler aramamı gerektirir, ve bu ilişkileri tanımlayan yeni bileşik sütunlar oluşturun. Araştırdığım sütunlar genellikle küçük kümeler halinde yapılır. Örneğin, sadece mülk değerleriyle ilgilenen 20 sütundan oluşan bir diziye odaklanacağım ve bunların bir kredinin temerrüde düşmesiyle nasıl ilişkili olduklarını gözlemleyeceğim. Bunlar araştırılıp yeni sütunlar oluşturulduktan sonra, başka bir sütun grubuna geçiyorum, diyelim ki üniversite eğitimi ve süreci tekrarlıyorum. Yaptığım şey, verilerimle bazı sonuçlar arasındaki ilişkiyi açıklayan aday değişkenler yaratmak. Bu sürecin en sonunda, bu bileşik sütunlardan bir denklem oluşturan bazı öğrenme teknikleri uyguluyorum.

Veri kümesine satır eklemek nadirdir. Neredeyse her zaman yeni sütunlar (istatistik/makine öğrenimi dilindeki değişkenler veya özellikler) oluşturuyor olacağım.

Pandaları kullanan "büyük veri" iş akışları __del__: Questions

Pandaları kullanan "büyük veri" iş akışları _files: Questions

Shop

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Best laptop for Zoom

$499

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News

Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method