Introducere
daru (Data Analysis in RUby) este o bibliotecă pentru stocarea, analiza, manipularea și vizualizarea datelor în Ruby.
daru facilitează și face intuitivă prelucrarea predominantă a datelor prin intermediul a 2 structuri de date:Daru::DataFrame
și Daru::Vector
. Scrisă în Ruby pur funcționează cu toate implementările ruby. testată cu MRI 2.5.1 și 2.7.1.
daru plugin gems
- daru-view
daru-view este pentru o reprezentare grafică ușoară și interactivă în aplicația web & IRubynotebook. Poate funcționa în orice cadru de aplicații web Ruby, cum ar fi Rails, Sinatra, Nanoc și sperăm că și în altele.
Articole/Blogs, care rezumă caracteristicile puternice ale daru-view:
- GSoC 2017 daru-view
- GSoC 2018 Progress Report
- HighCharts Official blog post regarding daru-view
- daru-io
Această gemă extinde suportul pentru multe metode de Import și Export ale Daru::DataFrame
. Această gemă este menită să îi ajute pe rubiniștii care se ocupă cu analiza datelor sau cu dezvoltarea web, servind ca o bibliotecă de conversie de uz general care preia datele de intrare într-un format (să zicem, JSON) și le convertește într-un alt format (să zicem, Avro), făcând în același timp incredibil de ușoară inițierea în analiza datelor cu daru. Se pot citi mai multe în SciRuby/blog/daru-io.
Caracteristici
- Structuri de date:
- Vector – Un vector 1-D de bază.
- DataFrame – O structură de tip foaie de calcul 2-D pentru manipularea și stocarea seturilor de date. Aceasta este structura principală de date a lui daru.
- Compatibil cu IRuby notebook, statsample, statsample-glm și statsample-timeseries.
- Suport pentru serii de timp.
- Structuri de date indexate în mod ierarhic.
- API flexibil și intuitiv pentru manipularea și analiza datelor.
- Tratări ușoare, statistici și aritmetică.
- Iteratori abundenți.
- Opțiune opțională de optimizare a vitezei și spațiului pe RMN cu NMatrix și GSL.
- Spargerea, agregarea și gruparea ușoară a datelor.
- Reducerea rapidă a datelor cu ajutorul tabelelor pivot pentru rezumarea rapidă a datelor.
- Import și export de date din și în Excel, CSV, baze de date SQL, ActiveRecord și fișiere de text simplu.
Instalare
$ gem install daru
Caiete de notițe
Caiete de notițe privind cele mai multe cazuri de utilizare
- Vizualizare generală a majorității funcțiilor daru
- Crearea de bază a vectorilor și a cadrului de date
- Utilizarea detaliată a Daru::Vector
- Utilizarea detaliată a Daru::DataFrame
- Cercetarea și combinarea datelor în daru
- Gruparea, divizarea și pivotarea datelor
- Utilizarea datelor categorice
Vizualizare
- Vizualizarea datelor cu Daru::DataFrame
- Plotting using Nyaplot
- Plotting using GnuplotRB
- Plotting vectorial cu Gruff
- Plotting DataFrame cu Gruff
Caiete despre serii de timp
- Basic Time Series
- Analiză și trasare a seriilor temporale
.
Caiete despre indexare
- Indexare în Vector
- Indexare în DataFrame
Studii de caz
- Analiză de regresie logistică cu daru și statsample-glm
- Finding and Plotting most heard artists from a Last.fm dataset
- Analiza numelor de copii cu daru
- Exemplu de utilizare a datelor categorice
- Exemplu de utilizare a indexului categoric
Blog Posts
- Analiza datelor în RUby: Manipularea și reprezentarea grafică a datelor de bază
- Data Analysis in RUby: Împărțirea, sortarea, agregarea datelor și tipuri de date
- Căutarea și combinarea datelor în daru
- Introducere la analiza seturilor de date cu biblioteca daru
Seriile de timp
- Analiza seriilor de timp în daru
- Dată Offsets in daru
Date categoriale
- Index categoric
- Date categoriale
- Vizualizare cu date categoriale
Utilizare de bază
daru expune două structuri de date majore: DataFrame
și Vector
. Vectorul este o structură de bază 1-D care corespunde unui Array etichetat, în timp ce DataFrame
– structura de date principală a lui daru – este o structură 2-D de tip foaie de calcul pentru manipularea și stocarea seturilor de date.
Inițializare de bază a DataFrame.
data_frame = Daru::DataFrame.new( { 'Beer' => , 'Gallons sold' => }, index: )data_frame
Încărcarea datelor din fișiere CSV.
df = Daru::DataFrame.from_csv('TradeoffData.csv')
Manipulare de bază a datelor
Selectarea rândurilor.
data_frame.row
Selectarea coloanelor.
data_frame
Un interval de rânduri.
data_frame.row
Primele 2 rânduri.
data_frame.first(2)
Ultimele 2 rânduri.
data_frame.last(2)
Aducerea unei noi coloane.
data_frame =
Crearea unei noi coloane pe baza datelor din alte coloane.
data_frame = data_frame - data_frame
Selecția bazată pe condiții
Selectarea țărilor pe baza numărului de galoane vândute în fiecare. Utilizăm o sintaxă similară cu cea definită de Arel, și anume prin utilizarea clauzei where
.
data_frame.where(data_frame.lt(300))
Puteți trece o combinație de operații booleene în metoda #where
și ar trebui să funcționeze bine:
data_frame.where( data_frame .in() .and( data_frame.gt(520).or(data_frame.lt(250)) ))
Plotări
Daru suportă trasarea de grafice interactive cu nyaplot. Puteți crea cu ușurință un grafic cu metoda #plot
. Aici reprezentăm galonii vânduți pe axa Y și numele mărcii pe axa X într-un grafic cu bare.
data_frame.plot type: :bar, x: 'Beer', y: 'Gallons sold' do |plot, diagram| plot.x_label "Beer" plot.y_label "Gallons Sold" plot.yrange plot.width 500 plot.height 400end
În plus față de nyaplot, daru suportă și reprezentarea grafică out of the box cu gnuplotrb.
Documentație
Documentele pot fi găsite aici.
Contribuire
Scoateți o caracteristică din Roadmap sau din issue tracker sau gândiți-vă la una proprie și trimiteți-mi un Pull Request!
Pentru detalii vedeți CONTRIBUTING.
Recunoștințe
- Google și Ruby Science Foundation pentru grantul Google Summer of Code 2016 pentru îmbunătățiri de viteză și implementarea suportului pentru date categorice. Mulțumiri speciale lui @lokeshh, @zverok și @agisga pentru eforturile lor.
- Google și Ruby Science Foundation pentru grantul Google Summer of Code 2015 pentru dezvoltarea în continuare a lui daru și integrarea acestuia cu alte bijuterii ruby.
- Mulțumim last.fm pentru că a făcut accesibile publicului datele utilizatorilor.
.