{"action":"created","comment":{"url":"https://api.github.com/repos/pydata/pandas/pulls/comments/22686982","id":22686982,"diff_hunk":"@@ -135,3 +135,83 @@ recommend using ``block`` as it's more memory efficient. The ``integer`` format\n keeps an arrays of all of the locations where the data are not equal to the\n fill value. The ``block`` format tracks only the locations and sizes of blocks\n of data.\n+\n+Interaction with scipy.sparse\n+-----------------------------\n+\n+Experimental api to transform between sparse pandas and scipy.sparse structures.\n+\n+:meth:`SparseSeries.to_coo`\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+A ``SparseSeries.to_coo`` method is implemented for transforming a ``SparseSeries`` indexed by a ``MultiIndex`` to a ``scipy.sparse.coo_matrix``.\n+\n+The method requires a ``MultiIndex`` with two or more levels.\n+\n+.. ipython:: python\n+   :suppress:\n+\n+   from numpy import nan\n+\n+.. ipython:: python\n+\n+   s = pandas.Series([3.0, nan, 1.0, 3.0, nan, nan])\n+   s.index = pandas.MultiIndex.from_tuples([(1, 2, 'a', 0),\n+                                            (1, 2, 'a', 1),\n+                                            (1, 1, 'b', 0),\n+                                            (1, 1, 'b', 1),\n+                                            (2, 1, 'b', 0),\n+                                            (2, 1, 'b', 1)],\n+                                            names=['A', 'B', 'C', 'D'])\n+\n+   s\n+   ss = s.to_sparse() # SparseSeries\n+   ss\n+\n+In the example below, we transform the ``SparseSeries`` to a sparse representation of a 2-d array by specifying that the first and second ``MultiIndex`` levels define labels for the rows and the third and fourth levels define labels for the columns. We also specify that the column and row labels should be sorted in the final sparse representation.\n+\n+.. ipython:: python\n+\n+   A, il, jl = ss.to_coo(ilevels=['A', 'B'], jlevels=['C', 'D'],\n+                         sort_labels=True)\n+\n+   A\n+   A.todense()\n+   il\n+   jl\n+\n+:meth:`SparseSeries.from_coo`\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+A convenience method for creating a ``SparseSeries`` from a ``scipy.sparse.coo_matrix``.\n+\n+.. ipython:: python\n+   :suppress:\n+\n+   from numpy import nan\n+   import scipy.sparse","path":"doc/source/sparse.rst","position":58,"original_position":58,"commit_id":"b487f66e4230ab6e2877cd60c7712c82e60bbb71","original_commit_id":"b487f66e4230ab6e2877cd60c7712c82e60bbb71","user":{"login":"jorisvandenbossche","id":1020496,"avatar_url":"https://avatars.githubusercontent.com/u/1020496?v=3","gravatar_id":"","url":"https://api.github.com/users/jorisvandenbossche","html_url":"https://github.com/jorisvandenbossche","followers_url":"https://api.github.com/users/jorisvandenbossche/followers","following_url":"https://api.github.com/users/jorisvandenbossche/following{/other_user}","gists_url":"https://api.github.com/users/jorisvandenbossche/gists{/gist_id}","starred_url":"https://api.github.com/users/jorisvandenbossche/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jorisvandenbossche/subscriptions","organizations_url":"https://api.github.com/users/jorisvandenbossche/orgs","repos_url":"https://api.github.com/users/jorisvandenbossche/repos","events_url":"https://api.github.com/users/jorisvandenbossche/events{/privacy}","received_events_url":"https://api.github.com/users/jorisvandenbossche/received_events","type":"User","site_admin":false},"body":"+ I would also show the import (don't suppress it), as it is a non standard import","created_at":"2015-01-08T22:11:21Z","updated_at":"2015-01-08T22:11:21Z","html_url":"https://github.com/pydata/pandas/pull/9076#discussion_r22686982","pull_request_url":"https://api.github.com/repos/pydata/pandas/pulls/9076","_links":{"self":{"href":"https://api.github.com/repos/pydata/pandas/pulls/comments/22686982"},"html":{"href":"https://github.com/pydata/pandas/pull/9076#discussion_r22686982"},"pull_request":{"href":"https://api.github.com/repos/pydata/pandas/pulls/9076"}}},"pull_request":{"url":"https://api.github.com/repos/pydata/pandas/pulls/9076","id":26039865,"html_url":"https://github.com/pydata/pandas/pull/9076","diff_url":"https://github.com/pydata/pandas/pull/9076.diff","patch_url":"https://github.com/pydata/pandas/pull/9076.patch","issue_url":"https://api.github.com/repos/pydata/pandas/issues/9076","number":9076,"state":"open","locked":false,"title":"Add SparseSeries.to_coo method, a single test and one example.","user":{"login":"cottrell","id":223276,"avatar_url":"https://avatars.githubusercontent.com/u/223276?v=3","gravatar_id":"","url":"https://api.github.com/users/cottrell","html_url":"https://github.com/cottrell","followers_url":"https://api.github.com/users/cottrell/followers","following_url":"https://api.github.com/users/cottrell/following{/other_user}","gists_url":"https://api.github.com/users/cottrell/gists{/gist_id}","starred_url":"https://api.github.com/users/cottrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cottrell/subscriptions","organizations_url":"https://api.github.com/users/cottrell/orgs","repos_url":"https://api.github.com/users/cottrell/repos","events_url":"https://api.github.com/users/cottrell/events{/privacy}","received_events_url":"https://api.github.com/users/cottrell/received_events","type":"User","site_admin":false},"body":"xref #4343\r\ncloses #8048\r\n\r\nThis passes locally run nosetests but is failing on Travis. I think the latest Travis CI changes might have caused failures. I was able to get master to pass on Travis last week but now it is failing. ","created_at":"2014-12-14T21:58:32Z","updated_at":"2015-01-08T22:11:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"aa25b22585a91774131d4053010b38c5f190ea69","assignee":null,"milestone":{"url":"https://api.github.com/repos/pydata/pandas/milestones/25","labels_url":"https://api.github.com/repos/pydata/pandas/milestones/25/labels","id":569113,"number":25,"title":"0.16.0","description":"after 0.15 of course!","creator":{"login":"jreback","id":953992,"avatar_url":"https://avatars.githubusercontent.com/u/953992?v=3","gravatar_id":"","url":"https://api.github.com/users/jreback","html_url":"https://github.com/jreback","followers_url":"https://api.github.com/users/jreback/followers","following_url":"https://api.github.com/users/jreback/following{/other_user}","gists_url":"https://api.github.com/users/jreback/gists{/gist_id}","starred_url":"https://api.github.com/users/jreback/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jreback/subscriptions","organizations_url":"https://api.github.com/users/jreback/orgs","repos_url":"https://api.github.com/users/jreback/repos","events_url":"https://api.github.com/users/jreback/events{/privacy}","received_events_url":"https://api.github.com/users/jreback/received_events","type":"User","site_admin":false},"open_issues":880,"closed_issues":135,"state":"open","created_at":"2014-02-14T03:31:22Z","updated_at":"2015-01-08T12:02:50Z","due_on":"2015-02-28T08:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/pydata/pandas/pulls/9076/commits","review_comments_url":"https://api.github.com/repos/pydata/pandas/pulls/9076/comments","review_comment_url":"https://api.github.com/repos/pydata/pandas/pulls/comments/{number}","comments_url":"https://api.github.com/repos/pydata/pandas/issues/9076/comments","statuses_url":"https://api.github.com/repos/pydata/pandas/statuses/b487f66e4230ab6e2877cd60c7712c82e60bbb71","head":{"label":"cottrell:to_coo","ref":"to_coo","sha":"b487f66e4230ab6e2877cd60c7712c82e60bbb71","user":{"login":"cottrell","id":223276,"avatar_url":"https://avatars.githubusercontent.com/u/223276?v=3","gravatar_id":"","url":"https://api.github.com/users/cottrell","html_url":"https://github.com/cottrell","followers_url":"https://api.github.com/users/cottrell/followers","following_url":"https://api.github.com/users/cottrell/following{/other_user}","gists_url":"https://api.github.com/users/cottrell/gists{/gist_id}","starred_url":"https://api.github.com/users/cottrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cottrell/subscriptions","organizations_url":"https://api.github.com/users/cottrell/orgs","repos_url":"https://api.github.com/users/cottrell/repos","events_url":"https://api.github.com/users/cottrell/events{/privacy}","received_events_url":"https://api.github.com/users/cottrell/received_events","type":"User","site_admin":false},"repo":{"id":6312295,"name":"pandas","full_name":"cottrell/pandas","owner":{"login":"cottrell","id":223276,"avatar_url":"https://avatars.githubusercontent.com/u/223276?v=3","gravatar_id":"","url":"https://api.github.com/users/cottrell","html_url":"https://github.com/cottrell","followers_url":"https://api.github.com/users/cottrell/followers","following_url":"https://api.github.com/users/cottrell/following{/other_user}","gists_url":"https://api.github.com/users/cottrell/gists{/gist_id}","starred_url":"https://api.github.com/users/cottrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cottrell/subscriptions","organizations_url":"https://api.github.com/users/cottrell/orgs","repos_url":"https://api.github.com/users/cottrell/repos","events_url":"https://api.github.com/users/cottrell/events{/privacy}","received_events_url":"https://api.github.com/users/cottrell/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/cottrell/pandas","description":"Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more","fork":true,"url":"https://api.github.com/repos/cottrell/pandas","forks_url":"https://api.github.com/repos/cottrell/pandas/forks","keys_url":"https://api.github.com/repos/cottrell/pandas/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cottrell/pandas/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cottrell/pandas/teams","hooks_url":"https://api.github.com/repos/cottrell/pandas/hooks","issue_events_url":"https://api.github.com/repos/cottrell/pandas/issues/events{/number}","events_url":"https://api.github.com/repos/cottrell/pandas/events","assignees_url":"https://api.github.com/repos/cottrell/pandas/assignees{/user}","branches_url":"https://api.github.com/repos/cottrell/pandas/branches{/branch}","tags_url":"https://api.github.com/repos/cottrell/pandas/tags","blobs_url":"https://api.github.com/repos/cottrell/pandas/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cottrell/pandas/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cottrell/pandas/git/refs{/sha}","trees_url":"https://api.github.com/repos/cottrell/pandas/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cottrell/pandas/statuses/{sha}","languages_url":"https://api.github.com/repos/cottrell/pandas/languages","stargazers_url":"https://api.github.com/repos/cottrell/pandas/stargazers","contributors_url":"https://api.github.com/repos/cottrell/pandas/contributors","subscribers_url":"https://api.github.com/repos/cottrell/pandas/subscribers","subscription_url":"https://api.github.com/repos/cottrell/pandas/subscription","commits_url":"https://api.github.com/repos/cottrell/pandas/commits{/sha}","git_commits_url":"https://api.github.com/repos/cottrell/pandas/git/commits{/sha}","comments_url":"https://api.github.com/repos/cottrell/pandas/comments{/number}","issue_comment_url":"https://api.github.com/repos/cottrell/pandas/issues/comments/{number}","contents_url":"https://api.github.com/repos/cottrell/pandas/contents/{+path}","compare_url":"https://api.github.com/repos/cottrell/pandas/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cottrell/pandas/merges","archive_url":"https://api.github.com/repos/cottrell/pandas/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cottrell/pandas/downloads","issues_url":"https://api.github.com/repos/cottrell/pandas/issues{/number}","pulls_url":"https://api.github.com/repos/cottrell/pandas/pulls{/number}","milestones_url":"https://api.github.com/repos/cottrell/pandas/milestones{/number}","notifications_url":"https://api.github.com/repos/cottrell/pandas/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cottrell/pandas/labels{/name}","releases_url":"https://api.github.com/repos/cottrell/pandas/releases{/id}","created_at":"2012-10-20T18:31:19Z","updated_at":"2014-12-14T20:21:36Z","pushed_at":"2015-01-07T23:10:39Z","git_url":"git://github.com/cottrell/pandas.git","ssh_url":"git@github.com:cottrell/pandas.git","clone_url":"https://github.com/cottrell/pandas.git","svn_url":"https://github.com/cottrell/pandas","homepage":"http://pandas.pydata.org","size":44244,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"pydata:master","ref":"master","sha":"b62754d4de0b60fdbfd67e0d0216ad7cd51d3c5f","user":{"login":"pydata","id":1284191,"avatar_url":"https://avatars.githubusercontent.com/u/1284191?v=3","gravatar_id":"","url":"https://api.github.com/users/pydata","html_url":"https://github.com/pydata","followers_url":"https://api.github.com/users/pydata/followers","following_url":"https://api.github.com/users/pydata/following{/other_user}","gists_url":"https://api.github.com/users/pydata/gists{/gist_id}","starred_url":"https://api.github.com/users/pydata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pydata/subscriptions","organizations_url":"https://api.github.com/users/pydata/orgs","repos_url":"https://api.github.com/users/pydata/repos","events_url":"https://api.github.com/users/pydata/events{/privacy}","received_events_url":"https://api.github.com/users/pydata/received_events","type":"Organization","site_admin":false},"repo":{"id":858127,"name":"pandas","full_name":"pydata/pandas","owner":{"login":"pydata","id":1284191,"avatar_url":"https://avatars.githubusercontent.com/u/1284191?v=3","gravatar_id":"","url":"https://api.github.com/users/pydata","html_url":"https://github.com/pydata","followers_url":"https://api.github.com/users/pydata/followers","following_url":"https://api.github.com/users/pydata/following{/other_user}","gists_url":"https://api.github.com/users/pydata/gists{/gist_id}","starred_url":"https://api.github.com/users/pydata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pydata/subscriptions","organizations_url":"https://api.github.com/users/pydata/orgs","repos_url":"https://api.github.com/users/pydata/repos","events_url":"https://api.github.com/users/pydata/events{/privacy}","received_events_url":"https://api.github.com/users/pydata/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/pydata/pandas","description":"Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more","fork":false,"url":"https://api.github.com/repos/pydata/pandas","forks_url":"https://api.github.com/repos/pydata/pandas/forks","keys_url":"https://api.github.com/repos/pydata/pandas/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pydata/pandas/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pydata/pandas/teams","hooks_url":"https://api.github.com/repos/pydata/pandas/hooks","issue_events_url":"https://api.github.com/repos/pydata/pandas/issues/events{/number}","events_url":"https://api.github.com/repos/pydata/pandas/events","assignees_url":"https://api.github.com/repos/pydata/pandas/assignees{/user}","branches_url":"https://api.github.com/repos/pydata/pandas/branches{/branch}","tags_url":"https://api.github.com/repos/pydata/pandas/tags","blobs_url":"https://api.github.com/repos/pydata/pandas/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pydata/pandas/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pydata/pandas/git/refs{/sha}","trees_url":"https://api.github.com/repos/pydata/pandas/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pydata/pandas/statuses/{sha}","languages_url":"https://api.github.com/repos/pydata/pandas/languages","stargazers_url":"https://api.github.com/repos/pydata/pandas/stargazers","contributors_url":"https://api.github.com/repos/pydata/pandas/contributors","subscribers_url":"https://api.github.com/repos/pydata/pandas/subscribers","subscription_url":"https://api.github.com/repos/pydata/pandas/subscription","commits_url":"https://api.github.com/repos/pydata/pandas/commits{/sha}","git_commits_url":"https://api.github.com/repos/pydata/pandas/git/commits{/sha}","comments_url":"https://api.github.com/repos/pydata/pandas/comments{/number}","issue_comment_url":"https://api.github.com/repos/pydata/pandas/issues/comments/{number}","contents_url":"https://api.github.com/repos/pydata/pandas/contents/{+path}","compare_url":"https://api.github.com/repos/pydata/pandas/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pydata/pandas/merges","archive_url":"https://api.github.com/repos/pydata/pandas/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pydata/pandas/downloads","issues_url":"https://api.github.com/repos/pydata/pandas/issues{/number}","pulls_url":"https://api.github.com/repos/pydata/pandas/pulls{/number}","milestones_url":"https://api.github.com/repos/pydata/pandas/milestones{/number}","notifications_url":"https://api.github.com/repos/pydata/pandas/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pydata/pandas/labels{/name}","releases_url":"https://api.github.com/repos/pydata/pandas/releases{/id}","created_at":"2010-08-24T01:37:33Z","updated_at":"2015-01-08T20:05:12Z","pushed_at":"2015-01-08T01:59:18Z","git_url":"git://github.com/pydata/pandas.git","ssh_url":"git@github.com:pydata/pandas.git","clone_url":"https://github.com/pydata/pandas.git","svn_url":"https://github.com/pydata/pandas","homepage":"http://pandas.pydata.org","size":120459,"stargazers_count":3843,"watchers_count":3843,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1330,"mirror_url":null,"open_issues_count":1263,"forks":1330,"open_issues":1263,"watchers":3843,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/pydata/pandas/pulls/9076"},"html":{"href":"https://github.com/pydata/pandas/pull/9076"},"issue":{"href":"https://api.github.com/repos/pydata/pandas/issues/9076"},"comments":{"href":"https://api.github.com/repos/pydata/pandas/issues/9076/comments"},"review_comments":{"href":"https://api.github.com/repos/pydata/pandas/pulls/9076/comments"},"review_comment":{"href":"https://api.github.com/repos/pydata/pandas/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/pydata/pandas/pulls/9076/commits"},"statuses":{"href":"https://api.github.com/repos/pydata/pandas/statuses/b487f66e4230ab6e2877cd60c7712c82e60bbb71"}}}}