Introduction
daru (Data Analysis in RUby) はデータの保存、解析、操作および可視化のための Ruby ライブラリです。
daru は、Daru::DataFrame
と Daru::Vector
の2つのデータ構造を通して、主にデータを簡単かつ直感的に処理できるようにします。 MRI 2.5.1 と 2.7.1 でテスト済み。
daru plugin gems
- daru-view
daru-view はウェブアプリケーション & IRubynotebook で簡単かつ対話的にプロッティングするためのものです。 これは Rails, Sinatra, Nanoc のような Ruby のウェブアプリケーションフレームワークで動作します。
daru-viewの強力な機能をまとめた記事/ブログです。
- GSoC 2017 daru-view
- GSoC 2018 Progress Report
- HighCharts daru-view に関する公式ブログ記事
- daru-io
このgemは Daru::DataFrame
の多くの Import と Export メソッドをサポートして拡張しています。 このgemは、データ解析やWeb開発に携わるRubyistのために、あるフォーマット(例えばJSON)の入力を受けて別のフォーマット(例えばAvro)に変換する汎用変換ライブラリとして機能し、同時にdaruによるデータ解析を非常に簡単に始められるようにすることを目的としています。 SciRuby/blog/daru-io.
Features
- データ構造:
- Vector – 1次元ベクトル
- DataFrame – データセットを操作し保存する2次元スプレッドシート的構造体です。 これは daru の主要なデータ構造です。
- IRuby notebook, statsample, statsample-glm, statsample-timeseries と互換性があります。
- Singly and hierarchically indexed data structures.
- Flexible and intuitive API for manipulation and analysis of data.
- Easy plotting, statistics and arithmetic.
- Easy plotting, statistics and arithmetic.
- 豊富なイテレーター。
- NMatrix と GSL を使用した MRI での速度と空間の最適化。
- データの分割、集約、グループ化が簡単。
- データをすばやく要約するピボット・テーブルですばやく縮小。
- Excel、 CSV、 SQL データベース、 ActiveRecord、プレーン テキスト ファイルからのデータのインポートとエクスポートが可能。
Easy plotting, statistics and arithmetic.Easy plotting, statistics and arithtic.
インストール
$ gem install daru
ノート
ほとんどの使用例に関するノート
- ほとんどのdaru関数の概要
- ベクターとDataFrameの基本作成
- Daru:.DataForm の詳細使用方法(英語)Vector
- Daru::DataFrame の詳細な使い方
- Daru におけるデータの検索と結合
- データのグループ化、分割、ピボット化
- カテゴリデータの使い方
視覚化
- Daru:.DataFrame による可視化
- Daru:DataFrame による視覚化
- Daru:DataFrame の詳細な使い方
- Nyaplot
- GnuplotRB
- Vector plotting with Gruff
- DataFrame plotting with Gruff
Daru:.DataFrame によるデータの可視化
Daru:DataFrame によるデータの検索と結合 Daru:DataFrame による視覚化
Notebooks on Time series
- Basic Time Series
- 時系列解析とプロット
インデックスに関するノート
- Vectorにおけるインデックス
- DataFrameにおけるインデックス
ケーススタディ
- daruとstatsample-によるLogistic Regression Analysisglm
- 最もよく聴かれたアーティストをLast.Liveから見つけてプロットする。fmデータセット
- Analyzing baby names with daru
- Example usage of Categorical Data
- Example usage of Categorical Index
Blog Posts
- Data Analysis in RUby.DATA DATA MATERIALS。 基本的なデータ操作とプロット
- RUbyでデータ分析。 分割、ソート。 データの集計とデータ型
- daruのデータの検索と結合
- daruライブラリを使ったデータセット解析の紹介
時系列
- daruの時系列解析
- Date Daruのオフセット
Categorical Data
- Categorical Index
- Categorical Dataで可視化
Basic Usage
daru は主に2つのデータ構造を公開しています。 DataFrame
と Vector
です。 Vectorはラベル付き配列に相当する基本的な1次元構造で、一方DataFrame
はdaruの主要なデータ構造で、データセットを操作したり保存するための2次元のスプレッドシート的構造です。
基本的なDataFrameの初期化。
data_frame = Daru::DataFrame.new( { 'Beer' => , 'Gallons sold' => }, index: )data_frame
CSVファイルからデータを読み込む。
df = Daru::DataFrame.from_csv('TradeoffData.csv')
データの基本操作
行を選ぶ。
data_frame.row
列を選ぶ。
data_frame
行の範囲。
data_frame.row
最初の2行を選択します。
data_frame.first(2)
最後の2行。
data_frame.last(2)
新規列を追加する。
data_frame =
他の列のデータに基づいて新しい列を作成する
data_frame = data_frame - data_frame
条件ベースの選択
それぞれのガロン販売数に基づいて国を選択する
他の列でデータを取得する
他の列でデータを取得する。 Arelによって定義されたものと同様の構文、すなわちwhere
句を使用することによって使用します。
data_frame.where(data_frame.lt(300))
ブーリアン演算の組み合わせを#where
メソッドに渡してもうまくいくはずです。
data_frame.where( data_frame .in() .and( data_frame.gt(520).or(data_frame.lt(250)) ))
プロッティング
Daru では nyaplot で対話的グラフのプロットができるようになっています。 #plot
メソッドを使えば、簡単にプロットを作成することができます。 ここでは Y 軸に販売ガロン、X 軸にブランド名を棒グラフで表示しています。
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
nyaplot に加え、daru は gnuplotrb によるアウトボックスのプロットもサポートしています。
Contributing
Pick a feature from the Roadmap or the issue tracker or think of your own and send me a Pull Request!
詳細は CONTRIBUTING.
Acknowledgements
- Google and the Ruby Science Foundation for the Google Summer of Code 2016 grant for speed enhancing and implementation of support for categorical dataを参照ください。 lokeshh、@zverok、@agisgaに感謝します。
- Google and the Ruby Science Foundation for the Google Summer of Code 2015 grantに感謝し、daruのさらなる開発と他のruby gemsとの統合を行いました。
- ユーザーデータを公開するためにlast.fmに感謝します。
ありがとうございます。