daru 0.0.5 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.build.sh +14 -0
  3. data/.travis.yml +26 -4
  4. data/CONTRIBUTING.md +31 -0
  5. data/Gemfile +1 -2
  6. data/{History.txt → History.md} +110 -44
  7. data/README.md +21 -288
  8. data/Rakefile +1 -0
  9. data/daru.gemspec +12 -8
  10. data/lib/daru.rb +36 -1
  11. data/lib/daru/accessors/array_wrapper.rb +8 -3
  12. data/lib/daru/accessors/gsl_wrapper.rb +113 -0
  13. data/lib/daru/accessors/nmatrix_wrapper.rb +6 -17
  14. data/lib/daru/core/group_by.rb +0 -1
  15. data/lib/daru/dataframe.rb +1192 -83
  16. data/lib/daru/extensions/rserve.rb +21 -0
  17. data/lib/daru/index.rb +14 -0
  18. data/lib/daru/io/io.rb +170 -8
  19. data/lib/daru/maths/arithmetic/dataframe.rb +4 -3
  20. data/lib/daru/maths/arithmetic/vector.rb +4 -4
  21. data/lib/daru/maths/statistics/dataframe.rb +48 -27
  22. data/lib/daru/maths/statistics/vector.rb +215 -33
  23. data/lib/daru/monkeys.rb +53 -7
  24. data/lib/daru/multi_index.rb +21 -4
  25. data/lib/daru/plotting/dataframe.rb +83 -25
  26. data/lib/daru/plotting/vector.rb +9 -10
  27. data/lib/daru/vector.rb +596 -61
  28. data/lib/daru/version.rb +3 -0
  29. data/spec/accessors/wrappers_spec.rb +51 -0
  30. data/spec/core/group_by_spec.rb +0 -2
  31. data/spec/daru_spec.rb +58 -0
  32. data/spec/dataframe_spec.rb +768 -73
  33. data/spec/extensions/rserve_spec.rb +52 -0
  34. data/spec/fixtures/bank2.dat +200 -0
  35. data/spec/fixtures/repeated_fields.csv +7 -0
  36. data/spec/fixtures/scientific_notation.csv +4 -0
  37. data/spec/fixtures/test_xls.xls +0 -0
  38. data/spec/io/io_spec.rb +161 -24
  39. data/spec/math/arithmetic/dataframe_spec.rb +26 -7
  40. data/spec/math/arithmetic/vector_spec.rb +8 -0
  41. data/spec/math/statistics/dataframe_spec.rb +16 -1
  42. data/spec/math/statistics/vector_spec.rb +215 -47
  43. data/spec/spec_helper.rb +21 -2
  44. data/spec/vector_spec.rb +368 -12
  45. metadata +99 -16
  46. data/lib/version.rb +0 -3
  47. data/notebooks/grouping_splitting_pivots.ipynb +0 -529
  48. data/notebooks/intro_with_music_data_.ipynb +0 -303
@@ -1,303 +0,0 @@
1
- {
2
- "metadata": {
3
- "language": "ruby",
4
- "name": "",
5
- "signature": "sha256:addeb041adfc32646a8288884b7c282421a0dd0465fcc24cfd498525d636ee08"
6
- },
7
- "nbformat": 3,
8
- "nbformat_minor": 0,
9
- "worksheets": [
10
- {
11
- "cells": [
12
- {
13
- "cell_type": "code",
14
- "collapsed": false,
15
- "input": [
16
- "require 'daru'\n",
17
- "\n",
18
- "df = Daru::DataFrame.from_csv '/home/sameer/github_repos/daru/spec/fixtures/music_data.tsv', col_sep: \"\\t\""
19
- ],
20
- "language": "python",
21
- "metadata": {},
22
- "outputs": [
23
- {
24
- "html": [
25
- "<script type='text/javascript'>if(window['d3'] === undefined ||\n",
26
- " window['Nyaplot'] === undefined){\n",
27
- " var path = {\"d3\":\"http://d3js.org/d3.v3.min\"};\n",
28
- "\n",
29
- "\n",
30
- "\n",
31
- " var shim = {\"d3\":{\"exports\":\"d3\"}};\n",
32
- "\n",
33
- " require.config({paths: path, shim:shim});\n",
34
- "\n",
35
- "\n",
36
- "require(['d3'], function(d3){window['d3']=d3;console.log('finished loading d3');\n",
37
- "\n",
38
- "\tvar script = d3.select(\"head\")\n",
39
- "\t .append(\"script\")\n",
40
- "\t .attr(\"src\", \"http://cdn.rawgit.com/domitry/Nyaplotjs/master/release/nyaplot.js\")\n",
41
- "\t .attr(\"async\", true);\n",
42
- "\n",
43
- "\tscript[0][0].onload = script[0][0].onreadystatechange = function(){\n",
44
- "\n",
45
- "\n",
46
- "\t var event = document.createEvent(\"HTMLEvents\");\n",
47
- "\t event.initEvent(\"load_nyaplot\",false,false);\n",
48
- "\t window.dispatchEvent(event);\n",
49
- "\t console.log('Finished loading Nyaplotjs');\n",
50
- "\n",
51
- "\t};\n",
52
- "\n",
53
- "\n",
54
- "});\n",
55
- "}\n",
56
- "</script>"
57
- ],
58
- "metadata": {},
59
- "output_type": "pyout",
60
- "prompt_number": 1,
61
- "text": [
62
- "\"if(window['d3'] === undefined ||\\n window['Nyaplot'] === undefined){\\n var path = {\\\"d3\\\":\\\"http://d3js.org/d3.v3.min\\\"};\\n\\n\\n\\n var shim = {\\\"d3\\\":{\\\"exports\\\":\\\"d3\\\"}};\\n\\n require.config({paths: path, shim:shim});\\n\\n\\nrequire(['d3'], function(d3){window['d3']=d3;console.log('finished loading d3');\\n\\n\\tvar script = d3.select(\\\"head\\\")\\n\\t .append(\\\"script\\\")\\n\\t .attr(\\\"src\\\", \\\"http://cdn.rawgit.com/domitry/Nyaplotjs/master/release/nyaplot.js\\\")\\n\\t .attr(\\\"async\\\", true);\\n\\n\\tscript[0][0].onload = script[0][0].onreadystatechange = function(){\\n\\n\\n\\t var event = document.createEvent(\\\"HTMLEvents\\\");\\n\\t event.initEvent(\\\"load_nyaplot\\\",false,false);\\n\\t window.dispatchEvent(event);\\n\\t console.log('Finished loading Nyaplotjs');\\n\\n\\t};\\n\\n\\n});\\n}\\n\""
63
- ]
64
- },
65
- {
66
- "html": [
67
- "<table><tr><th></th><th>artid</th><th>artname</th><th>timestamp</th><th>traid</th><th>traname</th><th>userid</th></tr><tr><td>0</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03T12:55:00Z</td><td>0138547f-374d-49d4-8f1c-9b2c8b5c65c0</td><td>X-Ray Eyes</td><td>user_000705</td></tr><tr><td>1</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03T12:51:28Z</td><td>22ce9a32-3510-4c8e-8151-c044a62eb4fd</td><td>Hard Times</td><td>user_000705</td></tr><tr><td>2</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03T12:46:55Z</td><td>22ce9a32-3510-4c8e-8151-c044a62eb4fd</td><td>Hard Times</td><td>user_000705</td></tr><tr><td>3</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03T12:42:17Z</td><td>c386b85f-1bfe-4038-b323-cb8229ab2f8b</td><td>Magic Touch</td><td>user_000705</td></tr><tr><td>4</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03T12:37:53Z</td><td>8ec9b4f8-2d1b-4616-9ae4-4711ca328fc3</td><td>Charisma</td><td>user_000705</td></tr><tr><td>5</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03T12:33:37Z</td><td>ff47d82e-313d-4bd0-8e61-fe61124a361b</td><td>Dirty Livin'</td><td>user_000705</td></tr><tr><td>6</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03T12:29:39Z</td><td>3621800b-87b7-43c6-b6a3-47ea4b658407</td><td>Sure Know Something</td><td>user_000705</td></tr><tr><td>7</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03T12:24:46Z</td><td>91cc5010-e65b-4f49-94b5-1deed61cfcc7</td><td>2,000 Man</td><td>user_000705</td></tr><tr><td>8</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03T12:20:17Z</td><td>daa13e72-9056-476f-b431-335b2c26842d</td><td>I Was Made For Lovin' You</td><td>user_000705</td></tr><tr><td>9</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03T12:16:20Z</td><td>1895c79d-ae5f-40bf-bc18-83fdcd8d2842</td><td>Burning Of The Midnight Lamp</td><td>user_000705</td></tr><tr><td>10</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03T12:12:35Z</td><td>1ae3c250-7b16-49d4-9c71-0928724eecce</td><td>Gypsy Eyes</td><td>user_000705</td></tr><tr><td>11</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03T12:08:26Z</td><td>fca63fe0-c9e6-4347-92b7-21f6cf79226c</td><td>Come On, Part 1</td><td>user_000705</td></tr><tr><td>12</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03T12:04:59Z</td><td>36beb31d-ed74-4a49-832f-a4a38dc96bab</td><td>Long Hot Summer Night</td><td>user_000705</td></tr><tr><td>13</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03T12:02:08Z</td><td>4ad6064e-7d54-49a2-a134-320a1612ee27</td><td>Little Miss Strange</td><td>user_000705</td></tr><tr><td>14</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03T11:47:07Z</td><td>40ffef8e-b851-473a-a239-08685eab22b0</td><td>Voodoo Chile</td><td>user_000705</td></tr><tr><td>15</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03T11:44:43Z</td><td>feb64d01-6e05-4974-bb44-0046deca1bdb</td><td>Crosstown Traffic</td><td>user_000705</td></tr><tr><td>16</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03T11:42:35Z</td><td>7f9b462a-8ac5-472d-a5aa-716b3b3d169c</td><td>Have You Ever Been (To Electric Ladyland)</td><td>user_000705</td></tr><tr><td>17</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03T11:41:13Z</td><td>88b57468-8d58-4310-b135-c94620fcfbc1</td><td>...And The Gods Made Love</td><td>user_000705</td></tr><tr><td>18</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02T09:24:28Z</td><td>788878e0-8965-489e-86e3-add4c1f3d134</td><td>Line Of Best Fit</td><td>user_000705</td></tr><tr><td>19</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02T09:19:58Z</td><td>7cfc403d-18e7-4b8e-b0c4-1864ca393fbb</td><td>Fake Frowns</td><td>user_000705</td></tr><tr><td>20</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02T09:15:03Z</td><td>34a2d7ad-6b3a-4cfc-b4ca-edfc55a6685b</td><td>Amputations</td><td>user_000705</td></tr><tr><td>21</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02T09:11:21Z</td><td>99db2ed6-4493-481c-ac20-54ad323cb04b</td><td>The Face That Launched 1000 Shits</td><td>user_000705</td></tr><tr><td>22</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02T09:07:44Z</td><td>269084ba-3065-4b43-a733-f491e618b26a</td><td>Sleep Spent</td><td>user_000705</td></tr><tr><td>23</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02T09:03:54Z</td><td>96fac269-5308-4aee-827f-d01a66674694</td><td>Pictures In An Exhibition</td><td>user_000705</td></tr><tr><td>24</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02T08:59:34Z</td><td>c29440d9-03e6-4e18-91d6-ef8bf1e1ca32</td><td>Your Bruise</td><td>user_000705</td></tr><tr><td>25</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02T08:56:55Z</td><td>ed55b695-976e-4898-8fde-51a8e3b0e262</td><td>Champagne From A Paper Cup</td><td>user_000705</td></tr><tr><td>26</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02T08:49:07Z</td><td>c5238d6d-9b04-496c-8674-4ea7a07aecd6</td><td>President Of What?</td><td>user_000705</td></tr><tr><td>27</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02T08:44:34Z</td><td>bf59dfef-03a8-4270-9456-50df79da56c2</td><td>Bend To Squares</td><td>user_000705</td></tr><tr><td>28</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-01T19:08:37Z</td><td>788878e0-8965-489e-86e3-add4c1f3d134</td><td>Line Of Best Fit</td><td>user_000705</td></tr><tr><td>29</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-01T19:04:07Z</td><td>7cfc403d-18e7-4b8e-b0c4-1864ca393fbb</td><td>Fake Frowns</td><td>user_000705</td></tr><tr><td>30</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-01T18:59:12Z</td><td>34a2d7ad-6b3a-4cfc-b4ca-edfc55a6685b</td><td>Amputations</td><td>user_000705</td></tr><tr><td>31</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-01T18:55:30Z</td><td>99db2ed6-4493-481c-ac20-54ad323cb04b</td><td>The Face That Launched 1000 Shits</td><td>user_000705</td></tr><tr><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td></tr></table>"
68
- ],
69
- "metadata": {},
70
- "output_type": "pyout",
71
- "prompt_number": 1,
72
- "text": [
73
- "\n",
74
- "#<Daru::DataFrame:86461610 @name = ae5b6be9-f08c-4e79-a0f3-ead8016fd7ee @size = 2500>\n",
75
- " artid artname timestamp traid traname userid \n",
76
- " 0 e1f1e33e-2 Kiss 2009-05-03 0138547f-3 X-Ray Eyes user_00070 \n",
77
- " 1 e1f1e33e-2 Kiss 2009-05-03 22ce9a32-3 Hard Times user_00070 \n",
78
- " 2 e1f1e33e-2 Kiss 2009-05-03 22ce9a32-3 Hard Times user_00070 \n",
79
- " 3 e1f1e33e-2 Kiss 2009-05-03 c386b85f-1 Magic Touc user_00070 \n",
80
- " 4 e1f1e33e-2 Kiss 2009-05-03 8ec9b4f8-2 Charisma user_00070 \n",
81
- " 5 e1f1e33e-2 Kiss 2009-05-03 ff47d82e-3 Dirty Livi user_00070 \n",
82
- " 6 e1f1e33e-2 Kiss 2009-05-03 3621800b-8 Sure Know user_00070 \n",
83
- " 7 e1f1e33e-2 Kiss 2009-05-03 91cc5010-e 2,000 Man user_00070 \n",
84
- " 8 e1f1e33e-2 Kiss 2009-05-03 daa13e72-9 I Was Made user_00070 \n",
85
- " 9 33b3c323-7 The Jimi H 2009-05-03 1895c79d-a Burning Of user_00070 \n",
86
- " 10 33b3c323-7 The Jimi H 2009-05-03 1ae3c250-7 Gypsy Eyes user_00070 \n",
87
- " 11 33b3c323-7 The Jimi H 2009-05-03 fca63fe0-c Come On, P user_00070 \n",
88
- " 12 33b3c323-7 The Jimi H 2009-05-03 36beb31d-e Long Hot S user_00070 \n",
89
- " 13 33b3c323-7 The Jimi H 2009-05-03 4ad6064e-7 Little Mis user_00070 \n",
90
- " 14 33b3c323-7 The Jimi H 2009-05-03 40ffef8e-b Voodoo Chi user_00070 \n",
91
- " ... ... ... ... ... ... ... \n"
92
- ]
93
- }
94
- ],
95
- "prompt_number": 1
96
- },
97
- {
98
- "cell_type": "code",
99
- "collapsed": false,
100
- "input": [
101
- "df.timestamp.map! { |ts| ts += \"+5:30\"}"
102
- ],
103
- "language": "python",
104
- "metadata": {},
105
- "outputs": [
106
- {
107
- "html": [
108
- "<table><tr><th> </th><th>timestamp</th></tr><tr><td>0</td><td>2009-05-03T12:55:00Z+5:30</td></tr><tr><td>1</td><td>2009-05-03T12:51:28Z+5:30</td></tr><tr><td>2</td><td>2009-05-03T12:46:55Z+5:30</td></tr><tr><td>3</td><td>2009-05-03T12:42:17Z+5:30</td></tr><tr><td>4</td><td>2009-05-03T12:37:53Z+5:30</td></tr><tr><td>5</td><td>2009-05-03T12:33:37Z+5:30</td></tr><tr><td>6</td><td>2009-05-03T12:29:39Z+5:30</td></tr><tr><td>7</td><td>2009-05-03T12:24:46Z+5:30</td></tr><tr><td>8</td><td>2009-05-03T12:20:17Z+5:30</td></tr><tr><td>9</td><td>2009-05-03T12:16:20Z+5:30</td></tr><tr><td>10</td><td>2009-05-03T12:12:35Z+5:30</td></tr><tr><td>11</td><td>2009-05-03T12:08:26Z+5:30</td></tr><tr><td>12</td><td>2009-05-03T12:04:59Z+5:30</td></tr><tr><td>13</td><td>2009-05-03T12:02:08Z+5:30</td></tr><tr><td>14</td><td>2009-05-03T11:47:07Z+5:30</td></tr><tr><td>15</td><td>2009-05-03T11:44:43Z+5:30</td></tr><tr><td>16</td><td>2009-05-03T11:42:35Z+5:30</td></tr><tr><td>17</td><td>2009-05-03T11:41:13Z+5:30</td></tr><tr><td>18</td><td>2009-05-02T09:24:28Z+5:30</td></tr><tr><td>19</td><td>2009-05-02T09:19:58Z+5:30</td></tr><tr><td>20</td><td>2009-05-02T09:15:03Z+5:30</td></tr><tr><td>21</td><td>2009-05-02T09:11:21Z+5:30</td></tr><tr><td>22</td><td>2009-05-02T09:07:44Z+5:30</td></tr><tr><td>23</td><td>2009-05-02T09:03:54Z+5:30</td></tr><tr><td>24</td><td>2009-05-02T08:59:34Z+5:30</td></tr><tr><td>25</td><td>2009-05-02T08:56:55Z+5:30</td></tr><tr><td>26</td><td>2009-05-02T08:49:07Z+5:30</td></tr><tr><td>27</td><td>2009-05-02T08:44:34Z+5:30</td></tr><tr><td>28</td><td>2009-05-01T19:08:37Z+5:30</td></tr><tr><td>29</td><td>2009-05-01T19:04:07Z+5:30</td></tr><tr><td>30</td><td>2009-05-01T18:59:12Z+5:30</td></tr><tr><td>31</td><td>2009-05-01T18:55:30Z+5:30</td></tr><tr><td>...</td><td>...</td></tr></table>"
109
- ],
110
- "metadata": {},
111
- "output_type": "pyout",
112
- "prompt_number": 2,
113
- "text": [
114
- "\n",
115
- "#<Daru::Vector:85988150 @name = timestamp @size = 2500 >\n",
116
- " timestamp\n",
117
- " 0 2009-05-03T12:55:00Z\n",
118
- " 1 2009-05-03T12:51:28Z\n",
119
- " 2 2009-05-03T12:46:55Z\n",
120
- " 3 2009-05-03T12:42:17Z\n",
121
- " 4 2009-05-03T12:37:53Z\n",
122
- " 5 2009-05-03T12:33:37Z\n",
123
- " 6 2009-05-03T12:29:39Z\n",
124
- " 7 2009-05-03T12:24:46Z\n",
125
- " 8 2009-05-03T12:20:17Z\n",
126
- " 9 2009-05-03T12:16:20Z\n",
127
- " 10 2009-05-03T12:12:35Z\n",
128
- " 11 2009-05-03T12:08:26Z\n",
129
- " 12 2009-05-03T12:04:59Z\n",
130
- " 13 2009-05-03T12:02:08Z\n",
131
- " 14 2009-05-03T11:47:07Z\n",
132
- " 15 2009-05-03T11:44:43Z\n",
133
- " 16 2009-05-03T11:42:35Z\n",
134
- " ... ...\n"
135
- ]
136
- }
137
- ],
138
- "prompt_number": 2
139
- },
140
- {
141
- "cell_type": "code",
142
- "collapsed": false,
143
- "input": [
144
- "require 'date'\n",
145
- "df = df.map_rows do |row|\n",
146
- " row[:timestamp] = DateTime.strptime(row[:timestamp], '%Y-%m-%dT%H:%M:%SZ%z').to_time\n",
147
- " row\n",
148
- "end"
149
- ],
150
- "language": "python",
151
- "metadata": {},
152
- "outputs": [
153
- {
154
- "html": [
155
- "<table><tr><th></th><th>artid</th><th>artname</th><th>timestamp</th><th>traid</th><th>traname</th><th>userid</th></tr><tr><td>0</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03 12:55:00 +0530</td><td>0138547f-374d-49d4-8f1c-9b2c8b5c65c0</td><td>X-Ray Eyes</td><td>user_000705</td></tr><tr><td>1</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03 12:51:28 +0530</td><td>22ce9a32-3510-4c8e-8151-c044a62eb4fd</td><td>Hard Times</td><td>user_000705</td></tr><tr><td>2</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03 12:46:55 +0530</td><td>22ce9a32-3510-4c8e-8151-c044a62eb4fd</td><td>Hard Times</td><td>user_000705</td></tr><tr><td>3</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03 12:42:17 +0530</td><td>c386b85f-1bfe-4038-b323-cb8229ab2f8b</td><td>Magic Touch</td><td>user_000705</td></tr><tr><td>4</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03 12:37:53 +0530</td><td>8ec9b4f8-2d1b-4616-9ae4-4711ca328fc3</td><td>Charisma</td><td>user_000705</td></tr><tr><td>5</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03 12:33:37 +0530</td><td>ff47d82e-313d-4bd0-8e61-fe61124a361b</td><td>Dirty Livin'</td><td>user_000705</td></tr><tr><td>6</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03 12:29:39 +0530</td><td>3621800b-87b7-43c6-b6a3-47ea4b658407</td><td>Sure Know Something</td><td>user_000705</td></tr><tr><td>7</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03 12:24:46 +0530</td><td>91cc5010-e65b-4f49-94b5-1deed61cfcc7</td><td>2,000 Man</td><td>user_000705</td></tr><tr><td>8</td><td>e1f1e33e-2e4c-4d43-b91b-7064068d3283</td><td>Kiss</td><td>2009-05-03 12:20:17 +0530</td><td>daa13e72-9056-476f-b431-335b2c26842d</td><td>I Was Made For Lovin' You</td><td>user_000705</td></tr><tr><td>9</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03 12:16:20 +0530</td><td>1895c79d-ae5f-40bf-bc18-83fdcd8d2842</td><td>Burning Of The Midnight Lamp</td><td>user_000705</td></tr><tr><td>10</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03 12:12:35 +0530</td><td>1ae3c250-7b16-49d4-9c71-0928724eecce</td><td>Gypsy Eyes</td><td>user_000705</td></tr><tr><td>11</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03 12:08:26 +0530</td><td>fca63fe0-c9e6-4347-92b7-21f6cf79226c</td><td>Come On, Part 1</td><td>user_000705</td></tr><tr><td>12</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03 12:04:59 +0530</td><td>36beb31d-ed74-4a49-832f-a4a38dc96bab</td><td>Long Hot Summer Night</td><td>user_000705</td></tr><tr><td>13</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03 12:02:08 +0530</td><td>4ad6064e-7d54-49a2-a134-320a1612ee27</td><td>Little Miss Strange</td><td>user_000705</td></tr><tr><td>14</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03 11:47:07 +0530</td><td>40ffef8e-b851-473a-a239-08685eab22b0</td><td>Voodoo Chile</td><td>user_000705</td></tr><tr><td>15</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03 11:44:43 +0530</td><td>feb64d01-6e05-4974-bb44-0046deca1bdb</td><td>Crosstown Traffic</td><td>user_000705</td></tr><tr><td>16</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03 11:42:35 +0530</td><td>7f9b462a-8ac5-472d-a5aa-716b3b3d169c</td><td>Have You Ever Been (To Electric Ladyland)</td><td>user_000705</td></tr><tr><td>17</td><td>33b3c323-77c2-417c-a5b4-af7e6a111cc9</td><td>The Jimi Hendrix Experience</td><td>2009-05-03 11:41:13 +0530</td><td>88b57468-8d58-4310-b135-c94620fcfbc1</td><td>...And The Gods Made Love</td><td>user_000705</td></tr><tr><td>18</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02 09:24:28 +0530</td><td>788878e0-8965-489e-86e3-add4c1f3d134</td><td>Line Of Best Fit</td><td>user_000705</td></tr><tr><td>19</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02 09:19:58 +0530</td><td>7cfc403d-18e7-4b8e-b0c4-1864ca393fbb</td><td>Fake Frowns</td><td>user_000705</td></tr><tr><td>20</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02 09:15:03 +0530</td><td>34a2d7ad-6b3a-4cfc-b4ca-edfc55a6685b</td><td>Amputations</td><td>user_000705</td></tr><tr><td>21</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02 09:11:21 +0530</td><td>99db2ed6-4493-481c-ac20-54ad323cb04b</td><td>The Face That Launched 1000 Shits</td><td>user_000705</td></tr><tr><td>22</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02 09:07:44 +0530</td><td>269084ba-3065-4b43-a733-f491e618b26a</td><td>Sleep Spent</td><td>user_000705</td></tr><tr><td>23</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02 09:03:54 +0530</td><td>96fac269-5308-4aee-827f-d01a66674694</td><td>Pictures In An Exhibition</td><td>user_000705</td></tr><tr><td>24</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02 08:59:34 +0530</td><td>c29440d9-03e6-4e18-91d6-ef8bf1e1ca32</td><td>Your Bruise</td><td>user_000705</td></tr><tr><td>25</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02 08:56:55 +0530</td><td>ed55b695-976e-4898-8fde-51a8e3b0e262</td><td>Champagne From A Paper Cup</td><td>user_000705</td></tr><tr><td>26</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02 08:49:07 +0530</td><td>c5238d6d-9b04-496c-8674-4ea7a07aecd6</td><td>President Of What?</td><td>user_000705</td></tr><tr><td>27</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-02 08:44:34 +0530</td><td>bf59dfef-03a8-4270-9456-50df79da56c2</td><td>Bend To Squares</td><td>user_000705</td></tr><tr><td>28</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-01 19:08:37 +0530</td><td>788878e0-8965-489e-86e3-add4c1f3d134</td><td>Line Of Best Fit</td><td>user_000705</td></tr><tr><td>29</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-01 19:04:07 +0530</td><td>7cfc403d-18e7-4b8e-b0c4-1864ca393fbb</td><td>Fake Frowns</td><td>user_000705</td></tr><tr><td>30</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-01 18:59:12 +0530</td><td>34a2d7ad-6b3a-4cfc-b4ca-edfc55a6685b</td><td>Amputations</td><td>user_000705</td></tr><tr><td>31</td><td>0039c7ae-e1a7-4a7d-9b49-0cbc716821a6</td><td>Death Cab For Cutie</td><td>2009-05-01 18:55:30 +0530</td><td>99db2ed6-4493-481c-ac20-54ad323cb04b</td><td>The Face That Launched 1000 Shits</td><td>user_000705</td></tr><tr><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td></tr></table>"
156
- ],
157
- "metadata": {},
158
- "output_type": "pyout",
159
- "prompt_number": 3,
160
- "text": [
161
- "\n",
162
- "#<Daru::DataFrame:88577360 @name = ae5b6be9-f08c-4e79-a0f3-ead8016fd7ee @size = 2500>\n",
163
- " artid artname timestamp traid traname userid \n",
164
- " 0 e1f1e33e-2 Kiss 2009-05-03 0138547f-3 X-Ray Eyes user_00070 \n",
165
- " 1 e1f1e33e-2 Kiss 2009-05-03 22ce9a32-3 Hard Times user_00070 \n",
166
- " 2 e1f1e33e-2 Kiss 2009-05-03 22ce9a32-3 Hard Times user_00070 \n",
167
- " 3 e1f1e33e-2 Kiss 2009-05-03 c386b85f-1 Magic Touc user_00070 \n",
168
- " 4 e1f1e33e-2 Kiss 2009-05-03 8ec9b4f8-2 Charisma user_00070 \n",
169
- " 5 e1f1e33e-2 Kiss 2009-05-03 ff47d82e-3 Dirty Livi user_00070 \n",
170
- " 6 e1f1e33e-2 Kiss 2009-05-03 3621800b-8 Sure Know user_00070 \n",
171
- " 7 e1f1e33e-2 Kiss 2009-05-03 91cc5010-e 2,000 Man user_00070 \n",
172
- " 8 e1f1e33e-2 Kiss 2009-05-03 daa13e72-9 I Was Made user_00070 \n",
173
- " 9 33b3c323-7 The Jimi H 2009-05-03 1895c79d-a Burning Of user_00070 \n",
174
- " 10 33b3c323-7 The Jimi H 2009-05-03 1ae3c250-7 Gypsy Eyes user_00070 \n",
175
- " 11 33b3c323-7 The Jimi H 2009-05-03 fca63fe0-c Come On, P user_00070 \n",
176
- " 12 33b3c323-7 The Jimi H 2009-05-03 36beb31d-e Long Hot S user_00070 \n",
177
- " 13 33b3c323-7 The Jimi H 2009-05-03 4ad6064e-7 Little Mis user_00070 \n",
178
- " 14 33b3c323-7 The Jimi H 2009-05-03 40ffef8e-b Voodoo Chi user_00070 \n",
179
- " ... ... ... ... ... ... ... \n"
180
- ]
181
- }
182
- ],
183
- "prompt_number": 3
184
- },
185
- {
186
- "cell_type": "code",
187
- "collapsed": false,
188
- "input": [
189
- "# Group by artist name and call 'size' to see the number of rows each artist populates.\n",
190
- "artists = df.group_by(:artname).size"
191
- ],
192
- "language": "python",
193
- "metadata": {},
194
- "outputs": [
195
- {
196
- "html": [
197
- "<table><tr><th> </th><th>size</th></tr><tr><td>3 Doors Down</td><td>3</td></tr><tr><td>A Perfect Circle</td><td>1</td></tr><tr><td>A. R. Rahman</td><td>231</td></tr><tr><td>Abba</td><td>1</td></tr><tr><td>Aditi Singh Sharma</td><td>3</td></tr><tr><td>Aerosmith</td><td>1</td></tr><tr><td>Air</td><td>1</td></tr><tr><td>Akurat</td><td>1</td></tr><tr><td>Alanis Morissette</td><td>5</td></tr><tr><td>Alice Cooper</td><td>2</td></tr><tr><td>Alice In Chains</td><td>1</td></tr><tr><td>Alison Krauss</td><td>1</td></tr><tr><td>Altamiro Carrilho</td><td>1</td></tr><tr><td>Alvin Youngblood Hart</td><td>3</td></tr><tr><td>America</td><td>1</td></tr><tr><td>Amit Trivedi</td><td>20</td></tr><tr><td>Amon Amarth</td><td>1</td></tr><tr><td>Anathema</td><td>4</td></tr><tr><td>Andrea Bocelli</td><td>16</td></tr><tr><td>Andrea Bocelli;Christina Aquilera</td><td>2</td></tr><tr><td>Andrea Bocelli;Kenny G</td><td>2</td></tr><tr><td>Andrea Bocelli;Mario Reyes</td><td>1</td></tr><tr><td>Andrew Lloyd Webber</td><td>1</td></tr><tr><td>Anton Maiden</td><td>2</td></tr><tr><td>Antsy Pants</td><td>2</td></tr><tr><td>Apocalyptica</td><td>9</td></tr><tr><td>Archive</td><td>1</td></tr><tr><td>Arctic Monkeys</td><td>1</td></tr><tr><td>Aretha Franklin</td><td>4</td></tr><tr><td>Asia</td><td>1</td></tr><tr><td>Audioslave</td><td>1</td></tr><tr><td>Aurelio Fierro</td><td>1</td></tr><tr><td>...</td><td>...</td></tr></table>"
198
- ],
199
- "metadata": {},
200
- "output_type": "pyout",
201
- "prompt_number": 7,
202
- "text": [
203
- "\n",
204
- "#<Daru::Vector:88196900 @name = size @size = 376 >\n",
205
- " size\n",
206
- " 3 Doors Down 3\n",
207
- " A Perfect Circle 1\n",
208
- " A. R. Rahman 231\n",
209
- " Abba 1\n",
210
- " Aditi Singh Sharma 3\n",
211
- " Aerosmith 1\n",
212
- " Air 1\n",
213
- " Akurat 1\n",
214
- " Alanis Morissette 5\n",
215
- " Alice Cooper 2\n",
216
- " Alice In Chains 1\n",
217
- " Alison Krauss 1\n",
218
- " Altamiro Carrilho 1\n",
219
- "Alvin Youngblood Har 3\n",
220
- " America 1\n",
221
- " Amit Trivedi 20\n",
222
- " Amon Amarth 1\n",
223
- " ... ...\n"
224
- ]
225
- }
226
- ],
227
- "prompt_number": 7
228
- },
229
- {
230
- "cell_type": "code",
231
- "collapsed": false,
232
- "input": [
233
- "artists.max_index"
234
- ],
235
- "language": "python",
236
- "metadata": {},
237
- "outputs": [
238
- {
239
- "html": [
240
- "<table><tr><th> </th><th>size</th></tr><tr><td>A. R. Rahman</td><td>231</td></tr></table>"
241
- ],
242
- "metadata": {},
243
- "output_type": "pyout",
244
- "prompt_number": 14,
245
- "text": [
246
- "\n",
247
- "#<Daru::Vector:86142110 @name = size @size = 1 >\n",
248
- " size\n",
249
- "A. R. Rahman 231\n"
250
- ]
251
- }
252
- ],
253
- "prompt_number": 14
254
- },
255
- {
256
- "cell_type": "code",
257
- "collapsed": false,
258
- "input": [
259
- "top_ten = artists.sort(ascending: false)[0..10]\n",
260
- "\n",
261
- "top_ten.plot type: :bar do |plt| \n",
262
- " plt.width 1120 \n",
263
- " plt.height 500\n",
264
- " plt.legend true\n",
265
- " plt.rotate_x_label 20\n",
266
- "end"
267
- ],
268
- "language": "python",
269
- "metadata": {},
270
- "outputs": [
271
- {
272
- "html": [
273
- "<div id='vis-5ee90e94-e93a-4506-817f-b036c2a9a7f6'></div>\n",
274
- "<script>\n",
275
- "(function(){\n",
276
- " var render = function(){\n",
277
- " var model = {\"panes\":[{\"diagrams\":[{\"type\":\"bar\",\"options\":{\"x\":\"data0\",\"y\":\"data1\"},\"data\":\"252f4b57-0e4e-4358-ab33-8ca341895f4e\"}],\"options\":{\"width\":1120,\"height\":500,\"legend\":true,\"rotate_x_label\":20,\"xrange\":[\"A. R. Rahman\",\"Death Cab For Cutie\",\"Pink Floyd\",\"The Rolling Stones\",\"Opeth\",\"The Beatles\",\"The Cranberries\",\"Cat Stevens\",\"Howard Shore\",\"Nick Drake\",\"Metallica\"],\"yrange\":[0,231]}}],\"data\":{\"252f4b57-0e4e-4358-ab33-8ca341895f4e\":[{\"data0\":\"A. R. Rahman\",\"data1\":231},{\"data0\":\"Death Cab For Cutie\",\"data1\":206},{\"data0\":\"Pink Floyd\",\"data1\":158},{\"data0\":\"The Rolling Stones\",\"data1\":91},{\"data0\":\"Opeth\",\"data1\":89},{\"data0\":\"The Beatles\",\"data1\":67},{\"data0\":\"The Cranberries\",\"data1\":61},{\"data0\":\"Cat Stevens\",\"data1\":57},{\"data0\":\"Howard Shore\",\"data1\":56},{\"data0\":\"Nick Drake\",\"data1\":51},{\"data0\":\"Metallica\",\"data1\":48}]},\"extension\":[]}\n",
278
- " Nyaplot.core.parse(model, '#vis-5ee90e94-e93a-4506-817f-b036c2a9a7f6');\n",
279
- " };\n",
280
- " if(window['Nyaplot']==undefined){\n",
281
- " window.addEventListener('load_nyaplot', render, false);\n",
282
- "\treturn;\n",
283
- " } else {\n",
284
- " render();\n",
285
- " }\n",
286
- "})();\n",
287
- "</script>\n"
288
- ],
289
- "metadata": {},
290
- "output_type": "pyout",
291
- "prompt_number": 17,
292
- "text": [
293
- "#<Nyaplot::Frame:0xa1c1614 @properties={:panes=>[#<Nyaplot::Plot:0xa1c2488 @properties={:diagrams=>[#<Nyaplot::Diagram:0xa1c190c @properties={:type=>:bar, :options=>{:x=>\"data0\", :y=>\"data1\"}, :data=>\"252f4b57-0e4e-4358-ab33-8ca341895f4e\"}, @xrange=[:\"A. R. Rahman\", :\"Death Cab For Cutie\", :\"Pink Floyd\", :\"The Rolling Stones\", :Opeth, :\"The Beatles\", :\"The Cranberries\", :\"Cat Stevens\", :\"Howard Shore\", :\"Nick Drake\", :Metallica], @yrange=[0, 231]>], :options=>{:width=>1120, :height=>500, :legend=>true, :rotate_x_label=>20, :xrange=>[:\"A. R. Rahman\", :\"Death Cab For Cutie\", :\"Pink Floyd\", :\"The Rolling Stones\", :Opeth, :\"The Beatles\", :\"The Cranberries\", :\"Cat Stevens\", :\"Howard Shore\", :\"Nick Drake\", :Metallica], :yrange=>[0, 231]}}>], :data=>{\"252f4b57-0e4e-4358-ab33-8ca341895f4e\"=>#<Nyaplot::DataFrame:0xa1c2154 @name=\"252f4b57-0e4e-4358-ab33-8ca341895f4e\", @rows=[{:data0=>:\"A. R. Rahman\", :data1=>231}, {:data0=>:\"Death Cab For Cutie\", :data1=>206}, {:data0=>:\"Pink Floyd\", :data1=>158}, {:data0=>:\"The Rolling Stones\", :data1=>91}, {:data0=>:Opeth, :data1=>89}, {:data0=>:\"The Beatles\", :data1=>67}, {:data0=>:\"The Cranberries\", :data1=>61}, {:data0=>:\"Cat Stevens\", :data1=>57}, {:data0=>:\"Howard Shore\", :data1=>56}, {:data0=>:\"Nick Drake\", :data1=>51}, {:data0=>:Metallica, :data1=>48}]>}, :extension=>[]}>"
294
- ]
295
- }
296
- ],
297
- "prompt_number": 17
298
- }
299
- ],
300
- "metadata": {}
301
- }
302
- ]
303
- }