rubyでやろう。データ解析導入編( csv, xml, json)

19
Rubyでやろう。データ解析導入編 情報工学科 中奥貴浩

Upload: takahiro-nakaoku

Post on 28-May-2015

2.014 views

Category:

Technology


3 download

DESCRIPTION

広島県で行われた、 LT駆動開発02 で発表した資料です。 ソースコード/サンプル : https://github.com/kamera25/RubyAnalysis 私のTwitter : https://twitter.com/csc_kamera25 LT駆動開発02 : http://goo.gl/rV6qJ7

TRANSCRIPT

Page 1: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

Rubyでやろう。データ解析導入編

情報工学科 中奥貴浩

Page 2: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

2

実は自分。

という団体のメンバーです。

Page 3: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

3

実は。自分

Hiroshima.rbの代表者さん

Page 4: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

4

ゆるい。

興味があれば、Webで調べてみてください。

Page 5: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

5

本題

Page 6: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

6

Rubyについて

● オブジェクト指向スクリプト言語● 日本産(まつもとゆきひろ)● プログラミングを楽しむ事を重要視している言語

Page 7: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

7

CSV

● 標準にビルトイン済み! すごく簡単!

CSV.open("member.csv","r") do |restu|p restu

end

require "csv" #←これだけでOK

一行ずつ表示するarraycsv = CSV.read("member.csv")

配列に入れる

Page 8: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

8

CSV

● もっと便利に読み出せます。テーブルならね。

table = CSV.table("member.csv")

注意 : Rubyのバージョンが1.9以上で使えます。Ubuntu12.04とかの人は注意。

● ヘッダの名前を連想配列がとして使える。

p table[:point]

Page 9: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

9

CSV

● 書き込みもできます。

CSV.open("output.csv","w") do |csv_writer|csv_writer <<["nakamura","prosessor","Hiroshima City University"]csv_writer <<["kodama", "Ph.D", "Hiroshima University"]

end

Page 10: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

10

XML

● すごく簡単です。

require "rexml/document"

● 読み込みの方法

file = REXML::Document.new(open("sweet.xml"))

Page 11: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

11

XML

● 表示(添え字なし)

p file.elements["oyastu/box/c"].textp file.elements["oyastu/box/c"].text

p file.elements["oyastu/box[2]/c[1]"].text

● 表示(添え字あり)

Page 12: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

12

XML

● 全部を表示させます!

file.elements.each("oyastu/box/c") do |element|p element.text

end

● textの部分を変えれば、色々できる。

~.previous_element.text 前のタグを表示

~.next_element.text 次のタグを表示

~.name タグ名

~.size 要素数の合計

~.attributes["hoge"] 属性の値を取る

Page 13: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

13

XML

● 書き込み

xfile = REXML::Document.newxfile << REXML::XMLDecl.new('1.0', 'UTF-8') #へッダー

#要素の書き込みfeed = xfile.add_element("feed", {"url" => "http://it-hiroshima.ac.jp"}) feed.add_element("title", {'type' => 'text'}).add_text( "広島工業大学のサイト")

xfile.write(path.xml) #保存

Page 14: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

14

JSON

● やっぱ簡単(ビルトイン)

require "json"

注意 : Rubyのバージョンが1.9以上で使えます。Ubuntu12.04とかの人は注意。

Page 15: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

15

JSON

● 使うデータ(pjson.json)[ { "name" : "Hiroshima institute of technology", "url" : "http://it-hiroshima.ac.jp", "department" : ["Engnieering", "Baiology", "Computer", "Enviromental"], "iscolleage" : true },

{ "name" : "Shimane University",

"url" : "http://shimane-u.ac.jp","department" : ["Law", "Education", "Medical", "Engnieering"],

"iscolleage" : true}

]

Page 16: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

16

JSON

open("pjson.json") do |data|jsondata = JSON.load( data)

end

● データの読み込み

連想配列として生成されます。

Page 17: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

17

JSON

● データの出力

cdata = [ {"name" => "Hiroshima City University"}     , { "url" => "http://www.hiroshima-cu.ac.jp/"}]

open("savjson.json", "w") do |file|JSON.dump( cdata, file)

end

普通に配列作る

保存処理

Page 18: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

18

まとめ

Rubyでもデータ処理簡単にできますよ。

Page 19: Rubyでやろう。データ解析導入編( CSV, XML, JSON)

19

Rubyも時々使ってくださいネ!!

ご清聴ありがとうございました。