Introduction
daru (Data Analysis in RUby) egy könyvtár adatok tárolására, elemzésére, manipulálására és megjelenítésére Ruby-ban.
daru megkönnyíti és intuitívvá teszi az adatok feldolgozását elsősorban 2 adatszerkezeten keresztül:Daru::DataFrame
és Daru::Vector
. Tiszta Ruby-ban íródott, minden ruby implementációval működik.tesztelve MRI 2.5.1 és 2.7.1.
daru plugin gems
- daru-view
daru-view a webes alkalmazásban & IRubynotebook egyszerű és interaktív ábrázolásra szolgál. Bármilyen Ruby webalkalmazás keretrendszerben működhet, mint a Rails, Sinatra, Nanoc és remélhetőleg másokban is.
Cikkek/Blogok, amelyek összefoglalják a daru-view hatékony funkcióit:
- GSoC 2017 daru-view
- GSoC 2018 Progress Report
- HighCharts Official blog post regarding daru-view
- daru-io
This gem extends support for many Import and Export methods of Daru::DataFrame
. Ennek a gemnek az a célja, hogy segítse az adatelemzéssel vagy webfejlesztéssel foglalkozó Rubyistákat azzal, hogy egy általános célú konverziós könyvtárként szolgál, amely egy formátumú bemenetet fogad (mondjuk JSON) és egy másik formátumba konvertálja (mondjuk Avro), miközben hihetetlenül egyszerűvé teszi az adatelemzés megkezdését a daruval. Bővebben a SciRuby/blog/daru-io-ban lehet olvasni.
Jellemzők
- Adatstruktúrák:
- Vector – Egy alapvető 1-D vektor.
- DataFrame – Egy 2-D táblázatszerű struktúra adathalmazok manipulálására és tárolására. Ez a daru elsődleges adatszerkezete.
- Kompatibilis az IRuby notebook, statsample, statsample-glm és statsample-timeseries programokkal.
- Támogatja az idősorokat.
- Szerűen és hierarchikusan indexelt adatstruktúrák.
- Flexibilis és intuitív API az adatok manipulálásához és elemzéséhez.
- Egyszerű ábrázolás, statisztika és aritmetika.
- Bőséges iterátorok.
- Optionális sebesség- és helyoptimalizálás az MRI-n NMatrix és GSL segítségével.
- Az adatok egyszerű felosztása, aggregálása és csoportosítása.
- Gyors adatcsökkentés pivot táblázatokkal a gyors adatösszefoglaláshoz.
- Adatok importálása és exportálása Excel, CSV, SQL-adatbázisok, ActiveRecord és egyszerű szöveges fájlokból és azokba.
Telepítés
$ gem install daru
Füzetek
Füzetek a legtöbb felhasználási esetről
- A legtöbb Daru funkció áttekintése
- Vektorok és DataFrame alapszintű létrehozása
- A Daru részletes használata::Vektor
- A Daru::DataFrame részletes használata
- Adatok keresése és kombinálása a daruban
- Adatok csoportosítása, felosztása és pivotálása
- Kategorikus adatok használata
Vizualizáció
- Adatok vizualizálása a Daru::DataFrame
- Plotting using Nyaplot
- Plotting using GnuplotRB
- Vector plotting with Gruff
- DataFrame plotting with Gruff
Notebooks on Time series
- Basic Time Series
- Az idősorok elemzése és ábrázolása
Füzetek az indexelésről
- Indexelés vektorban
- Indexelés DataFrame-ben
Esettanulmányok
- Logisztikus regresszióelemzés daruval és statsample-rel.glm
- A legtöbbet hallott előadók megtalálása és ábrázolása egy Last.fm adathalmaz
- Babanevek elemzése daruval
- Kategorikus adatok példahasználata
- Kategorikus index példahasználata
Blogbejegyzések
- Adatelemzés a RUby: Alapvető adatmanipuláció és ábrázolás
- Adatelemzés a RUby-ban: Osztás, rendezés, adatok és adattípusok aggregálása
- Adatok keresése és kombinálása a daruban
- Elvezetés az adathalmazok elemzéséhez a daru könyvtárral
Idősorok
- Az idősorok elemzése a daruban
- Date Offsets in daru
Kategorikus adatok
- Kategorikus index
- Kategorikus adatok
- Visualizáció kategorikus adatokkal
Alapvető használat
daru két fő adatszerkezetet tár fel: DataFrame
és Vector
. A Vector egy alapvető 1-D struktúra, amely egy címkézett Array-nek felel meg, míg a DataFrame
– a daru elsődleges adatstruktúrája – egy 2-D táblázatszerű struktúra adathalmazok manipulálására és tárolására.
Basic DataFrame intitializáció.
data_frame = Daru::DataFrame.new( { 'Beer' => , 'Gallons sold' => }, index: )data_frame
Adatok betöltése CSV fájlból.
df = Daru::DataFrame.from_csv('TradeoffData.csv')
Bázis adatmanipuláció
Sorok kiválasztása.
data_frame.row
Oszlopok kiválasztása.
data_frame
Sorok tartománya.
data_frame.row
Az első 2 sor.
data_frame.first(2)
Az utolsó 2 sor.
data_frame.last(2)
Új oszlop hozzáadása.
data_frame =
Új oszlop létrehozása más oszlopok adatai alapján.
data_frame = data_frame - data_frame
Feltétel alapú kiválasztás
Az országok kiválasztása az egyes országokban eladott gallonok száma alapján. Az Arel által meghatározotthoz hasonló szintaxist használunk, azaz a where
záradék használatával.
data_frame.where(data_frame.lt(300))
Az #where
metódusba átadhatjuk a bólusműveletek kombinációját, és annak működnie kell:
data_frame.where( data_frame .in() .and( data_frame.gt(520).or(data_frame.lt(250)) ))
Plotting
Daru támogatja az interaktív grafikonok ábrázolását nyaplot segítségével. A #plot
metódussal könnyen létrehozhatunk egy plotot. Itt az Y tengelyen az eladott gallonokat, az X tengelyen pedig a márka nevét ábrázoljuk egy oszlopdiagramban.
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
A nyaplot mellett a daru a gnuplotrb-vel is támogatja az out of the box plottingot.
Dokumentáció
Dokumentáció itt található.
Hozzájárulás
Válasszon ki egy funkciót az útitervből vagy a hibakövetőről, vagy gondoljon ki egy sajátot, és küldjön nekem egy Pull Requestet!
A részleteket lásd CONTRIBUTING.
Köszönetnyilvánítás
- Google és a Ruby Science Foundation a Google Summer of Code 2016 támogatásért a sebességjavításhoz és a kategorikus adatok támogatásának megvalósításához. Külön köszönet @lokeshh-nek, @zverok-nak és @agisga-nak az erőfeszítéseikért.
- Google és a Ruby Science Foundation a Google Summer of Code 2015 támogatásért a daru továbbfejlesztéséért és más ruby gemekkel való integrálásáért.
- Köszönjük a last.fm-nek, hogy a felhasználói adatokat a nyilvánosság számára elérhetővé tette.