{"action":"created","comment":{"url":"https://api.github.com/repos/pydata/pandas/pulls/comments/24775188","id":24775188,"diff_hunk":"@@ -1949,56 +1949,103 @@ module and use the same parsing code as the above to convert tabular data into\n a DataFrame. See the :ref:`cookbook<cookbook.excel>` for some\n advanced strategies\n \n-Besides ``read_excel`` you can also read Excel files using the ``ExcelFile``\n-class. The following two commands are equivalent:\n+Reading Excel Files\n+~~~~~~~~~~~~~~~~~~~\n+\n+.. versionadded:: 0.16\n+``read_excel`` can read more than one sheet, by setting ``sheetname`` to either\n+a list of sheet names, a list of sheet positions, or None to read all sheets.\n+\n+.. versionadded:: 0.13\n+Sheets can be specified by sheet index or sheet name, using an integer or string,\n+respectively.\n+\n+.. versionadded:: 0.12\n+``ExcelFile`` has been moved to the top level namespace.\n+   \n+There are two approaches to reading an excel file.  The ``read_excel`` function\n+and the ``ExcelFile`` class.  ``read_excel`` is for reading one file\n+with file-specific arguments (ie. identical data formats across sheets).\n+``ExcelFile`` is for reading one file with sheet-specific arguments (ie. various data\n+formats across sheets).  Choosing the approach is largely a question of\n+code readability and execution speed.  \n+\n+Equivalent class and function approaches to read a single sheet:\n \n .. code-block:: python\n \n     # using the ExcelFile class\n     xls = pd.ExcelFile('path_to_file.xls')\n-    xls.parse('Sheet1', index_col=None, na_values=['NA'])\n+    data = xls.parse('Sheet1', index_col=None, na_values=['NA'])\n \n     # using the read_excel function\n-    read_excel('path_to_file.xls', 'Sheet1', index_col=None, na_values=['NA'])\n+    data = read_excel('path_to_file.xls', 'Sheet1', index_col=None, na_values=['NA'])\n \n-The class based approach can be used to read multiple sheets or to introspect\n-the sheet names using the ``sheet_names`` attribute.\n+Equivalent class and function approaches to read multiple sheets:\n \n-.. note::\n+.. code-block:: python\n \n-   The prior method of accessing ``ExcelFile`` has been moved from\n-   ``pandas.io.parsers`` to the top level namespace starting from pandas\n-   0.12.0.\n+    data = {}\n+    # For when Sheet1's format differs from Sheet2\n+    xls = pd.ExcelFile('path_to_file.xls')\n+    data['Sheet1'] = xls.parse('Sheet1', index_col=None, na_values=['NA'])\n+    data['Sheet2'] = xls.parse('Sheet2', index_col=1)\n+    \n+    # For when Sheet1's format is identical to Sheet2\n+    data = read_excel('path_to_file.xls', ['Sheet1','Sheet2'], index_col=None, na_values=['NA'])\n+   \n+Specifying Sheets    \n++++++++++++++++++\n+.. _io.specifying_sheets:\n \n-.. versionadded:: 0.13\n+.. note :: The second argument is ``sheetname``, not to be confused with ``ExcelFile.sheet_names``\n \n-There are now two ways to read in sheets from an Excel file. You can provide\n-either the index of a sheet or its name to by passing different values for\n-``sheet_name``.\n+.. note :: An ExcelFile's attribute ``sheet_names`` provides access to a list of sheets.\n \n+- The arguments ``sheetname`` allows specifying the sheet or sheets to read.\n+- The default value for ``sheetname`` is 0, indicating to read the first sheet\n - Pass a string to refer to the name of a particular sheet in the workbook.\n - Pass an integer to refer to the index of a sheet. Indices follow Python\n   convention, beginning at 0.\n-- The default value is ``sheet_name=0``. This reads the first sheet.\n-\n-Using the sheet name:\n+- Pass a list of either strings or integers, to return a dictionary of specified sheets.\n+- Pass a None, to return a dictionary of all available sheets.\n \n .. code-block:: python\n-\n+   # Returns a DataFrame\n    read_excel('path_to_file.xls', 'Sheet1', index_col=None, na_values=['NA'])\n \n Using the sheet index:\n \n .. code-block:: python\n \n-   read_excel('path_to_file.xls', 0, index_col=None, na_values=['NA'])\n+   # Returns a DataFrame\n+   read_excel('path_to_file.xls', 0, index_col=None, na_values=['NA']) \n \n Using all default values:\n \n .. code-block:: python\n \n+   # Returns a DataFrame\n    read_excel('path_to_file.xls')\n \n+Using None to get all sheets:\n+\n+.. code-block:: python\n+\n+   # If more than one sheet exists, returns a dictionary of DataFrames,\n+   # otherwise returns a DataFrame\n+   read_excel('path_to_file.xls',sheetname=None)\n+","path":"doc/source/io.rst","position":109,"original_position":109,"commit_id":"74a3771e62ad4854fe4e15226fde012d55f16606","original_commit_id":"74a3771e62ad4854fe4e15226fde012d55f16606","user":{"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},"body":"I think the comments in the io.rst need to be updated here? (to conform with option 2)","created_at":"2015-02-16T20:52:47Z","updated_at":"2015-02-16T20:52:47Z","html_url":"https://github.com/pydata/pandas/pull/9450#discussion_r24775188","pull_request_url":"https://api.github.com/repos/pydata/pandas/pulls/9450","_links":{"self":{"href":"https://api.github.com/repos/pydata/pandas/pulls/comments/24775188"},"html":{"href":"https://github.com/pydata/pandas/pull/9450#discussion_r24775188"},"pull_request":{"href":"https://api.github.com/repos/pydata/pandas/pulls/9450"}}},"pull_request":{"url":"https://api.github.com/repos/pydata/pandas/pulls/9450","id":28914525,"html_url":"https://github.com/pydata/pandas/pull/9450","diff_url":"https://github.com/pydata/pandas/pull/9450.diff","patch_url":"https://github.com/pydata/pandas/pull/9450.patch","issue_url":"https://api.github.com/repos/pydata/pandas/issues/9450","number":9450,"state":"open","locked":false,"title":"ENH Read mutiple excel sheets in single API call","user":{"login":"jnmclarty","id":6062071,"avatar_url":"https://avatars.githubusercontent.com/u/6062071?v=3","gravatar_id":"","url":"https://api.github.com/users/jnmclarty","html_url":"https://github.com/jnmclarty","followers_url":"https://api.github.com/users/jnmclarty/followers","following_url":"https://api.github.com/users/jnmclarty/following{/other_user}","gists_url":"https://api.github.com/users/jnmclarty/gists{/gist_id}","starred_url":"https://api.github.com/users/jnmclarty/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnmclarty/subscriptions","organizations_url":"https://api.github.com/users/jnmclarty/orgs","repos_url":"https://api.github.com/users/jnmclarty/repos","events_url":"https://api.github.com/users/jnmclarty/events{/privacy}","received_events_url":"https://api.github.com/users/jnmclarty/received_events","type":"User","site_admin":false},"body":"Enables reading of multiple excel sheets in a single API call, reducing read time substantially. \r\n\r\nEssentially, 2O(n) becomes O(1) + O(n).\r\n\r\nBefore\r\n---------\r\n```python\r\ndfs = {}\r\nfor sheet in [‘Sheet1’,’Sheet2’,’Sheet3’]:\r\n    #We have to open the file 3 times = Super Slow\r\n    dfs[sheet] = pd.read_excel(\"TestData.xlsx\",sheetname=sheet)\r\n```\r\nThis PR\r\n-----------\r\n```python\r\n#We open the file only 1 time = Much Faster, and it's just one python line\r\ndfs = pd.read_excel(\"TestData.xlsx\",sheetname=[‘Sheet1’,’Sheet2’,’Sheet3’])\r\n```\r\n...but as a bonus...\r\n```python\r\n#the above is the same as...\r\ndfs = pd.read_excel_sheets(\"TestData.xlsx\",[‘Sheet1’,’Sheet2’,’Sheet3’])\r\n#or, assuming those are there are only the 3 sheets...\r\ndfs = pd.read_excel_sheets(\"TestData.xlsx\")\r\n#and this also works. But the dictionary returned has the integer keys instead of strings.\r\ndfs = pd.read_excel_sheets(\"TestData.xlsx\",[0,1,2])\r\n```\r\n\r\nReturn Objects\r\n--------------------\r\nFor the sheetname argument, specifying an int or a string, gets you a DataFrame (same as before the PR).  But, specify a list of strings/int, returns a dictionary of dataframes.  Specify None, and get all sheets in dictionary of dataframes, where the keys are the sheetnames.\r\n\r\nMore Discussion\r\n----------------------\r\nThe first commit (2db986d) implements 100% of the functionality, while the next two commits (5c2304c and 1a53b01) layer on optional changes to the documentation and API (of the two, only one is actually mandatory, but keeping both is the most explicit).  Since the argument, sheetname, in read_excel was not plural, and defaults to 0, to maintain backwards compatibility AND create the “read all sheets” functionality associated with the non-default of None, the documentation of the argument gets really awkward.  Hence, creating read_excel_sheets with an argument sheetnames which defaults to None instead of 0.\r\n\r\nThings I need feedback on:\r\n- [x] Confirm print statement acceptability\r\n- [x] Confirm if sheetname argument documentation should be changed (or not, to avoid confusion of dictionary-based return cases)\r\n- [x] Confirm if read_excel_sheets addition to API is right approach\r\n\r\nThings I still have to do:\r\n- [x] Test/write tests\r\n- [x] Update the release notes\r\n- [x] Build the docs and check\r\n\r\nNote: There might have been another way of doing this, but I couldn't easily figure it out, (SO/google wasn't helpful).  I just wanted to read my 623 sheets without it taking hours.","created_at":"2015-02-09T11:53:24Z","updated_at":"2015-02-16T20:52:47Z","closed_at":null,"merged_at":null,"merge_commit_sha":"71e77e7764fa2f73191a67ce4f63259b12dc1a6d","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":814,"closed_issues":279,"state":"open","created_at":"2014-02-14T03:31:22Z","updated_at":"2015-02-16T15:37:45Z","due_on":"2015-02-28T08:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/pydata/pandas/pulls/9450/commits","review_comments_url":"https://api.github.com/repos/pydata/pandas/pulls/9450/comments","review_comment_url":"https://api.github.com/repos/pydata/pandas/pulls/comments/{number}","comments_url":"https://api.github.com/repos/pydata/pandas/issues/9450/comments","statuses_url":"https://api.github.com/repos/pydata/pandas/statuses/74a3771e62ad4854fe4e15226fde012d55f16606","head":{"label":"jnmclarty:multixlsheet","ref":"multixlsheet","sha":"74a3771e62ad4854fe4e15226fde012d55f16606","user":{"login":"jnmclarty","id":6062071,"avatar_url":"https://avatars.githubusercontent.com/u/6062071?v=3","gravatar_id":"","url":"https://api.github.com/users/jnmclarty","html_url":"https://github.com/jnmclarty","followers_url":"https://api.github.com/users/jnmclarty/followers","following_url":"https://api.github.com/users/jnmclarty/following{/other_user}","gists_url":"https://api.github.com/users/jnmclarty/gists{/gist_id}","starred_url":"https://api.github.com/users/jnmclarty/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnmclarty/subscriptions","organizations_url":"https://api.github.com/users/jnmclarty/orgs","repos_url":"https://api.github.com/users/jnmclarty/repos","events_url":"https://api.github.com/users/jnmclarty/events{/privacy}","received_events_url":"https://api.github.com/users/jnmclarty/received_events","type":"User","site_admin":false},"repo":{"id":23943493,"name":"pandas","full_name":"jnmclarty/pandas","owner":{"login":"jnmclarty","id":6062071,"avatar_url":"https://avatars.githubusercontent.com/u/6062071?v=3","gravatar_id":"","url":"https://api.github.com/users/jnmclarty","html_url":"https://github.com/jnmclarty","followers_url":"https://api.github.com/users/jnmclarty/followers","following_url":"https://api.github.com/users/jnmclarty/following{/other_user}","gists_url":"https://api.github.com/users/jnmclarty/gists{/gist_id}","starred_url":"https://api.github.com/users/jnmclarty/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnmclarty/subscriptions","organizations_url":"https://api.github.com/users/jnmclarty/orgs","repos_url":"https://api.github.com/users/jnmclarty/repos","events_url":"https://api.github.com/users/jnmclarty/events{/privacy}","received_events_url":"https://api.github.com/users/jnmclarty/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jnmclarty/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/jnmclarty/pandas","forks_url":"https://api.github.com/repos/jnmclarty/pandas/forks","keys_url":"https://api.github.com/repos/jnmclarty/pandas/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnmclarty/pandas/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnmclarty/pandas/teams","hooks_url":"https://api.github.com/repos/jnmclarty/pandas/hooks","issue_events_url":"https://api.github.com/repos/jnmclarty/pandas/issues/events{/number}","events_url":"https://api.github.com/repos/jnmclarty/pandas/events","assignees_url":"https://api.github.com/repos/jnmclarty/pandas/assignees{/user}","branches_url":"https://api.github.com/repos/jnmclarty/pandas/branches{/branch}","tags_url":"https://api.github.com/repos/jnmclarty/pandas/tags","blobs_url":"https://api.github.com/repos/jnmclarty/pandas/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnmclarty/pandas/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnmclarty/pandas/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnmclarty/pandas/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnmclarty/pandas/statuses/{sha}","languages_url":"https://api.github.com/repos/jnmclarty/pandas/languages","stargazers_url":"https://api.github.com/repos/jnmclarty/pandas/stargazers","contributors_url":"https://api.github.com/repos/jnmclarty/pandas/contributors","subscribers_url":"https://api.github.com/repos/jnmclarty/pandas/subscribers","subscription_url":"https://api.github.com/repos/jnmclarty/pandas/subscription","commits_url":"https://api.github.com/repos/jnmclarty/pandas/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnmclarty/pandas/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnmclarty/pandas/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnmclarty/pandas/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnmclarty/pandas/contents/{+path}","compare_url":"https://api.github.com/repos/jnmclarty/pandas/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnmclarty/pandas/merges","archive_url":"https://api.github.com/repos/jnmclarty/pandas/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnmclarty/pandas/downloads","issues_url":"https://api.github.com/repos/jnmclarty/pandas/issues{/number}","pulls_url":"https://api.github.com/repos/jnmclarty/pandas/pulls{/number}","milestones_url":"https://api.github.com/repos/jnmclarty/pandas/milestones{/number}","notifications_url":"https://api.github.com/repos/jnmclarty/pandas/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnmclarty/pandas/labels{/name}","releases_url":"https://api.github.com/repos/jnmclarty/pandas/releases{/id}","created_at":"2014-09-12T02:13:42Z","updated_at":"2015-02-16T19:47:54Z","pushed_at":"2015-02-16T20:48:17Z","git_url":"git://github.com/jnmclarty/pandas.git","ssh_url":"git@github.com:jnmclarty/pandas.git","clone_url":"https://github.com/jnmclarty/pandas.git","svn_url":"https://github.com/jnmclarty/pandas","homepage":"http://pandas.pydata.org","size":45648,"stargazers_count":1,"watchers_count":1,"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":1,"default_branch":"master"}},"base":{"label":"pydata:master","ref":"master","sha":"fa2b684d67b62b191c2c67aaaa4874bdd2e086d2","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-02-16T15:37:46Z","pushed_at":"2015-02-16T15:37:45Z","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":125023,"stargazers_count":4024,"watchers_count":4024,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1420,"mirror_url":null,"open_issues_count":1318,"forks":1420,"open_issues":1318,"watchers":4024,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/pydata/pandas/pulls/9450"},"html":{"href":"https://github.com/pydata/pandas/pull/9450"},"issue":{"href":"https://api.github.com/repos/pydata/pandas/issues/9450"},"comments":{"href":"https://api.github.com/repos/pydata/pandas/issues/9450/comments"},"review_comments":{"href":"https://api.github.com/repos/pydata/pandas/pulls/9450/comments"},"review_comment":{"href":"https://api.github.com/repos/pydata/pandas/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/pydata/pandas/pulls/9450/commits"},"statuses":{"href":"https://api.github.com/repos/pydata/pandas/statuses/74a3771e62ad4854fe4e15226fde012d55f16606"}}}}