daru 0.0.5 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
- }