Úvod
daru (Data Analysis in RUby) je knihovna pro ukládání, analýzu, manipulaci a vizualizaci dat v Ruby.
daru umožňuje snadné a intuitivní zpracování dat převážně prostřednictvím 2 datových struktur:Daru::DataFrame
a Daru::Vector
. Napsáno v čistém jazyce Ruby funguje se všemi implementacemi Ruby. testováno s MRI 2.5.1 a 2.7.1.
daru plugin gems
- daru-view
daru-view slouží ke snadnému a interaktivnímu vykreslování ve webové aplikaci & IRubynotebook. Může fungovat ve všech frameworcích webových aplikací v jazyce Ruby, jako jsou Rails, Sinatra, Nanoc a snad i v dalších.
Články/Blogy, které shrnují výkonné funkce daru-view:
- GSoC 2017 daru-view
- GSoC 2018 Progress Report
- HighCharts Oficiální příspěvek na blogu týkající se daru-view
- daru-io
Tento gem rozšiřuje podporu mnoha metod importu a exportu Daru::DataFrame
. Tento gem má pomoci rubistům, kteří se zabývají analýzou dat nebo vývojem webu, tím, že slouží jako univerzální konverzní knihovna, která přijímá vstup v jednom formátu (řekněme JSON) a převádí jej do jiného formátu (řekněme Avro) a zároveň neuvěřitelně usnadňuje začátky analýzy dat pomocí daru. Více se lze dočíst v SciRuby/blog/daru-io.
Vlastnosti
- Datové struktury:
- Vector – Základní 1-D vektor.
- DataFrame – Dvourozměrná struktura podobná tabulkovému procesoru pro manipulaci a ukládání datových sad. Je to základní datová struktura daru.
- Kompatibilní s IRuby notebook, statsample, statsample-glm a statsample-timeseries.
- Podpora časových řad.
- Jednoduše a hierarchicky indexované datové struktury.
- Pružné a intuitivní API pro manipulaci a analýzu dat.
- Snadné vykreslování, statistiky a aritmetiku.
- Dostatek iterátorů.
- Volitelná optimalizace rychlosti a prostoru na MRI pomocí NMatrix a GSL.
- Snadné rozdělování, agregace a seskupování dat.
- Rychlá redukce dat pomocí pivotních tabulek pro rychlé shrnutí dat.
- Import a export dat z a do Excelu, CSV, SQL databází, ActiveRecord a textových souborů.
Instalace
$ gem install daru
Zápisníky
Zápisníky k většině případů použití
- Přehled většiny funkcí Daru
- Základní tvorba vektorů a DataFrame
- Podrobné použití Daru::Vektor
- Podrobné použití Daru::DataFrame
- Vyhledávání a kombinování dat v daru
- Seskupování, rozdělování a otáčení dat
- Použití kategorických dat
Vizualizace
- Vizualizace dat pomocí Daru::DataFrame
- Kreslení pomocí Nyaplot
- Kreslení pomocí GnuplotRB
- Kreslení vektorů pomocí Gruff
- Kreslení datových rámců pomocí Gruff
Sešity o časových řadách
- Základní časové řady
- Analýza a vykreslování časových řad
.
Sešity o indexování
- Indexování ve vektoru
- Indexování v DataFrame
Případové studie
- Logistická regresní analýza s daru a statsample-glm
- Vyhledávání a vykreslování nejposlouchanějších umělců z a Last.fm dataset
- Analýza jmen dětí pomocí daru
- Příklad použití kategoriálních dat
- Příklad použití kategoriálního indexu
Příspěvky na blogu
- Analýza dat v RUby: Základní manipulace s daty a vykreslování
- Analýza dat v RUby: Dělení, třídění, agregace dat a datové typy
- Vyhledávání a kombinování dat v daru
- Úvod do analýzy datových souborů pomocí knihovny daru
Časové řady
- Analýza časových řad v daru
- Data Offsety v daru
Kategoriální data
- Kategoriální index
- Kategoriální data
- Vizualizace s kategoriálními daty
Základní použití
daru vystavuje dvě hlavní datové struktury: DataFrame
a Vector
. Vektor je základní 1-D struktura odpovídající označenému poli Array, zatímco DataFrame
– primární datová struktura daru – je 2-D struktura podobná tabulkovému procesoru pro manipulaci a ukládání souborů dat.
Základní intitializace DataFrame.
data_frame = Daru::DataFrame.new( { 'Beer' => , 'Gallons sold' => }, index: )data_frame
Načítání dat ze souborů CSV.
df = Daru::DataFrame.from_csv('TradeoffData.csv')
Základní manipulace s daty
Výběr řádků.
data_frame.row
Výběr sloupců.
data_frame
Rozsah řádků.
data_frame.row
První 2 řádky.
data_frame.first(2)
Poslední 2 řádky.
data_frame.last(2)
Přidání nového sloupce.
data_frame =
Vytvoření nového sloupce na základě údajů v jiných sloupcích.
data_frame = data_frame - data_frame
Výběr na základě podmínky
Výběr zemí na základě počtu prodaných galonů v každé z nich. Používáme podobnou syntaxi, jakou definoval Arel, tj. pomocí klauzule where
.
data_frame.where(data_frame.lt(300))
Můžete do metody #where
předat kombinaci logických operací a mělo by to fungovat dobře:
data_frame.where( data_frame .in() .and( data_frame.gt(520).or(data_frame.lt(250)) ))
Kreslení
Daru podporuje kreslení interaktivních grafů pomocí nyaplot. Pomocí metody #plot
můžete snadno vytvořit graf. Zde vykreslujeme prodané litry na ose Y a název značky na ose X ve sloupcovém grafu.
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
Kromě nyaplotu podporuje daru také vykreslování z krabice pomocí gnuplotrb.
Dokumentace
Dokumenty najdete zde.
Přispívání
Vyberte si funkci z cestovní mapy nebo ze sledování problémů nebo si vymyslete vlastní a pošlete mi požadavek na vytažení (Pull Request)!
Podrobnosti najdete v části CONTRIBUTUTING.
Poděkování
- Google a Ruby Science Foundation za grant Google Summer of Code 2016 na zvýšení rychlosti a implementaci podpory kategoriálních dat. Zvláštní poděkování patří @lokeshh, @zverok a @agisga za jejich úsilí.
- Google a Ruby Science Foundation za grant Google Summer of Code 2015 na další rozvoj daru a jeho integraci s dalšími ruby gemy.
- Děkujeme last.fm za zpřístupnění uživatelských dat veřejnosti.
.