Wprowadzenie
daru (Data Analysis in RUby) jest biblioteką do przechowywania, analizy, manipulacji i wizualizacji danych w Ruby.
daru pozwala na łatwe i intuicyjne przetwarzanie danych głównie poprzez 2 struktury danych: Daru::DataFrame
i Daru::Vector
. Napisany w czystym Ruby, działa ze wszystkimi implementacjami Ruby.Testowany z MRI 2.5.1 i 2.7.1.
wtyczka daru gems
- daru-view
daru-view jest do łatwego i interaktywnego tworzenia wykresów w aplikacji internetowej & IRubynotebook. Może działać w każdym frameworku aplikacji internetowych Ruby jak Rails, Sinatra, Nanoc i miejmy nadzieję, że w innych też.
Artykuły/Blogi, które podsumowują potężne cechy daru-view:
- GSoC 2017 daru-view
- GSoC 2018 Progress Report
- HighCharts Oficjalny wpis na blogu dotyczący daru-view
- daru-io
Ten klejnot rozszerza wsparcie dla wielu metod Import i Export z Daru::DataFrame
. Ten gem ma na celu pomóc Rubinistom, którzy zajmują się analizą danych lub tworzeniem stron internetowych, służąc jako biblioteka konwersji ogólnego przeznaczenia, która pobiera dane wejściowe w jednym formacie (powiedzmy JSON) i konwertuje je do innego formatu (powiedzmy Avro), jednocześnie sprawiając, że rozpoczęcie analizowania danych z daru jest niezwykle proste. Można przeczytać więcej w SciRuby/blog/daru-io.
Cechy
- Struktury danych:
- Vector – Podstawowy wektor 1-D.
- DataFrame – 2-D struktura podobna do arkusza kalkulacyjnego do manipulowania i przechowywania zestawów danych. Jest to podstawowa struktura danych daru.
- Kompatybilność z IRuby notebook, statsample, statsample-glm i statsample-timeseries.
- Wsparcie dla szeregów czasowych.
- Samodzielnie i hierarchicznie indeksowane struktury danych.
- Elastyczne i intuicyjne API do manipulacji i analizy danych.
- Łatwe wykreślanie, statystyki i arytmetyka.
- Przeróżne iteratory.
- Opcjonalna optymalizacja prędkości i przestrzeni na MRI z NMatrix i GSL.
- Łatwe dzielenie, agregowanie i grupowanie danych.
- Szybka redukcja danych z tabelami przestawnymi dla szybkiego podsumowania danych.
- Import i eksport danych z i do Excela, CSV, baz danych SQL, ActiveRecord i zwykłych plików tekstowych.
Instalacja
$ gem install daru
Podręczniki
Podręczniki dotyczące większości przypadków użycia
- Przegląd większości funkcji daru
- Podstawowe tworzenie wektorów i DataFrame
- Szczegółowe użycie Daru::Vector
- Szczegółowe użycie Daru::DataFrame
- Wyszukiwanie i łączenie danych w daru
- Grupowanie, dzielenie i przestawianie danych
- Używanie danych kategorycznych
Wizualizacja
- Wizualizowanie danych za pomocą Daru::DataFrame
- Plotting using Nyaplot
- Plotting using GnuplotRB
- Vector plotting with Gruff
- DataFrame plotting with Gruff
Notebooks on Time series
- Basic Time Series
- Time Series Analysis and Plotting
.
Notebooks on Indexing
- Indexing in Vector
- Indexing in DataFrame
Case Studies
- Logistic Regression Analysis with daru and statsample-.glm
- Finding and Plotting most heard artists from a Last.fm dataset
- Analiza imion dziecięcych za pomocą daru
- Przykładowe użycie danych kategorycznych
- Przykładowe użycie indeksu kategorycznego
Posty na blogu
- Analiza danych w RUby: Podstawowa manipulacja danymi i wykreślanie
- Analiza danych w RUby: Dzielenie, sortowanie, sortowanie, agregowanie danych i typy danych
- Wyszukiwanie i łączenie danych w daru
- Wprowadzenie do analizy zbiorów danych za pomocą biblioteki daru
Szeregi czasowe
- Analiza szeregów czasowych w daru
- Data Offsets in Daru
Categorical Data
- Categorical Index
- Categorical Data
- Visualization with Categorical Data
Basic Usage
daru eksponuje dwie główne struktury danych: DataFrame
i Vector
. Wektor jest podstawową strukturą 1-D odpowiadającą etykietowanej tablicy, podczas gdy DataFrame
– podstawowa struktura danych daru – jest 2-D strukturą podobną do arkusza kalkulacyjnego, służącą do manipulowania i przechowywania zestawów danych.
Podstawowa intrializacja DataFrame.
data_frame = Daru::DataFrame.new( { 'Beer' => , 'Gallons sold' => }, index: )data_frame
Wczytywanie danych z plików CSV.
df = Daru::DataFrame.from_csv('TradeoffData.csv')
Podstawowa manipulacja danymi
Wybieranie wierszy.
data_frame.row
Wybieranie kolumn.
data_frame
Zakres wierszy.
data_frame.row
Pierwsze 2 wiersze.
data_frame.first(2)
Ostatnie 2 wiersze.
data_frame.last(2)
Dodanie nowej kolumny.
data_frame =
Tworzenie nowej kolumny na podstawie danych w innych kolumnach.
data_frame = data_frame - data_frame
Wybór na podstawie warunku
Wybór krajów na podstawie liczby galonów sprzedanych w każdym z nich. Używamy składni podobnej do tej zdefiniowanej przez Arela, tj. poprzez użycie klauzuli where
.
data_frame.where(data_frame.lt(300))
Możesz przekazać kombinację operacji boolean do metody #where
i powinna ona działać dobrze:
data_frame.where( data_frame .in() .and( data_frame.gt(520).or(data_frame.lt(250)) ))
Wykreślanie wykresów
Daru obsługuje wykreślanie interaktywnych wykresów za pomocą nyaplot. Możesz łatwo utworzyć wykres za pomocą metody #plot
. Tutaj wykreślamy sprzedane galony na osi Y i nazwę marki na osi X w wykresie słupkowym.
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
Oprócz nyaplot, daru obsługuje również wykreślanie po wyjęciu z pudełka za pomocą gnuplotrb.
Dokumentacja
Dokumenty można znaleźć tutaj.
Wnoszenie wkładu
Wybierz cechę z mapy drogowej lub issue trackera albo wymyśl własną i wyślij mi Pull Request!
Dla szczegółów zobacz CONTRIBUTING.
Podziękowania
- Google i Ruby Science Foundation za grant Google Summer of Code 2016 za zwiększenie prędkości i wdrożenie wsparcia dla danych kategorycznych. Specjalne podziękowania dla @lokeshh, @zverok i @agisga za ich wysiłki.
- Google i Ruby Science Foundation za grant Google Summer of Code 2015 za dalszy rozwój daru i zintegrowanie go z innymi rubinowymi klejnotami.
- Dziękuję last.fm za udostępnienie danych użytkowników publicznie.
.