{"action":"created","comment":{"url":"https://api.github.com/repos/pydata/pandas/pulls/comments/53313572","id":53313572,"diff_hunk":"@@ -4712,6 +4712,42 @@ def test_timegrouper_get_group(self):\n                 result = grouped.get_group(dt)\n                 assert_frame_equal(result, expected)\n \n+    def test_timegrouper_apply_return_type_series(self):\n+        # Using `apply` with the `TimeGrouper` should give the\n+        # same return type as an `apply` with a `Grouper`.\n+        df = pd.DataFrame({'date': ['10/10/2000', '11/10/2000'],\n+                           'value': [10, 13]})\n+        df_dt = df.copy()\n+        df_dt['date'] = pd.to_datetime(df_dt['date'])\n+\n+        def sumfunc_series(x):\n+            return pd.Series([x['value'].sum()], ('sum',))\n+\n+        grp_out = df.groupby(pd.Grouper(key='date')).apply(sumfunc_series)","path":"pandas/tests/test_groupby.py","position":15,"original_position":15,"commit_id":"1a2bdc5466739a9676fc29d9816f17943985e35c","original_commit_id":"1a2bdc5466739a9676fc29d9816f17943985e35c","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":"call this ``result`` instead of ``grp_out``","created_at":"2016-02-18T13:35:16Z","updated_at":"2016-02-18T13:35:16Z","html_url":"https://github.com/pydata/pandas/pull/12362#discussion_r53313572","pull_request_url":"https://api.github.com/repos/pydata/pandas/pulls/12362","_links":{"self":{"href":"https://api.github.com/repos/pydata/pandas/pulls/comments/53313572"},"html":{"href":"https://github.com/pydata/pandas/pull/12362#discussion_r53313572"},"pull_request":{"href":"https://api.github.com/repos/pydata/pandas/pulls/12362"}}},"pull_request":{"url":"https://api.github.com/repos/pydata/pandas/pulls/12362","id":59586166,"html_url":"https://github.com/pydata/pandas/pull/12362","diff_url":"https://github.com/pydata/pandas/pull/12362.diff","patch_url":"https://github.com/pydata/pandas/pull/12362.patch","issue_url":"https://api.github.com/repos/pydata/pandas/issues/12362","number":12362,"state":"open","locked":false,"title":"ENH Consistent apply output when grouping with freq","user":{"login":"stephen-hoover","id":8355977,"avatar_url":"https://avatars.githubusercontent.com/u/8355977?v=3","gravatar_id":"","url":"https://api.github.com/users/stephen-hoover","html_url":"https://github.com/stephen-hoover","followers_url":"https://api.github.com/users/stephen-hoover/followers","following_url":"https://api.github.com/users/stephen-hoover/following{/other_user}","gists_url":"https://api.github.com/users/stephen-hoover/gists{/gist_id}","starred_url":"https://api.github.com/users/stephen-hoover/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephen-hoover/subscriptions","organizations_url":"https://api.github.com/users/stephen-hoover/orgs","repos_url":"https://api.github.com/users/stephen-hoover/repos","events_url":"https://api.github.com/users/stephen-hoover/events{/privacy}","received_events_url":"https://api.github.com/users/stephen-hoover/received_events","type":"User","site_admin":false},"body":"The `BinGrouper.apply` (used by the `TimeGrouper`) and `BaseGrouper.apply` (used by the `Grouper`) have different output types. To make them consistent, remove `BinGrouper.apply` and let it use the same method as the superclass `BaseGrouper`. This requires changing `BinGrouper.groupings` to return an object which looks sufficiently like a `Grouping` object for `BaseGrouper.apply` to be happy. Use a namedtuple to create an object with the needed attributes.\r\n\r\nI think this change will only affect the output of `apply` with a custom function, and only when grouping by a `TimeGrouper` (although a `Grouper` with a `freq` specified turns into a `TimeGrouper`, so that counts).\r\n\r\nCloses #11742 .","created_at":"2016-02-17T02:04:45Z","updated_at":"2016-02-18T13:35:16Z","closed_at":null,"merged_at":null,"merge_commit_sha":"05b9bd06a9e0e4170440694651bc8a7ce567e0c3","assignee":null,"milestone":{"url":"https://api.github.com/repos/pydata/pandas/milestones/36","html_url":"https://github.com/pydata/pandas/milestones/0.18.0","labels_url":"https://api.github.com/repos/pydata/pandas/milestones/36/labels","id":1214851,"number":36,"title":"0.18.0","description":"","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":14,"closed_issues":372,"state":"open","created_at":"2015-07-19T20:18:45Z","updated_at":"2016-02-18T13:15:08Z","due_on":"2016-02-25T05:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/pydata/pandas/pulls/12362/commits","review_comments_url":"https://api.github.com/repos/pydata/pandas/pulls/12362/comments","review_comment_url":"https://api.github.com/repos/pydata/pandas/pulls/comments{/number}","comments_url":"https://api.github.com/repos/pydata/pandas/issues/12362/comments","statuses_url":"https://api.github.com/repos/pydata/pandas/statuses/1a2bdc5466739a9676fc29d9816f17943985e35c","head":{"label":"stephen-hoover:consistent-freq-grouping-11742","ref":"consistent-freq-grouping-11742","sha":"1a2bdc5466739a9676fc29d9816f17943985e35c","user":{"login":"stephen-hoover","id":8355977,"avatar_url":"https://avatars.githubusercontent.com/u/8355977?v=3","gravatar_id":"","url":"https://api.github.com/users/stephen-hoover","html_url":"https://github.com/stephen-hoover","followers_url":"https://api.github.com/users/stephen-hoover/followers","following_url":"https://api.github.com/users/stephen-hoover/following{/other_user}","gists_url":"https://api.github.com/users/stephen-hoover/gists{/gist_id}","starred_url":"https://api.github.com/users/stephen-hoover/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephen-hoover/subscriptions","organizations_url":"https://api.github.com/users/stephen-hoover/orgs","repos_url":"https://api.github.com/users/stephen-hoover/repos","events_url":"https://api.github.com/users/stephen-hoover/events{/privacy}","received_events_url":"https://api.github.com/users/stephen-hoover/received_events","type":"User","site_admin":false},"repo":{"id":39215160,"name":"pandas","full_name":"stephen-hoover/pandas","owner":{"login":"stephen-hoover","id":8355977,"avatar_url":"https://avatars.githubusercontent.com/u/8355977?v=3","gravatar_id":"","url":"https://api.github.com/users/stephen-hoover","html_url":"https://github.com/stephen-hoover","followers_url":"https://api.github.com/users/stephen-hoover/followers","following_url":"https://api.github.com/users/stephen-hoover/following{/other_user}","gists_url":"https://api.github.com/users/stephen-hoover/gists{/gist_id}","starred_url":"https://api.github.com/users/stephen-hoover/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephen-hoover/subscriptions","organizations_url":"https://api.github.com/users/stephen-hoover/orgs","repos_url":"https://api.github.com/users/stephen-hoover/repos","events_url":"https://api.github.com/users/stephen-hoover/events{/privacy}","received_events_url":"https://api.github.com/users/stephen-hoover/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/stephen-hoover/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/stephen-hoover/pandas","forks_url":"https://api.github.com/repos/stephen-hoover/pandas/forks","keys_url":"https://api.github.com/repos/stephen-hoover/pandas/keys{/key_id}","collaborators_url":"https://api.github.com/repos/stephen-hoover/pandas/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/stephen-hoover/pandas/teams","hooks_url":"https://api.github.com/repos/stephen-hoover/pandas/hooks","issue_events_url":"https://api.github.com/repos/stephen-hoover/pandas/issues/events{/number}","events_url":"https://api.github.com/repos/stephen-hoover/pandas/events","assignees_url":"https://api.github.com/repos/stephen-hoover/pandas/assignees{/user}","branches_url":"https://api.github.com/repos/stephen-hoover/pandas/branches{/branch}","tags_url":"https://api.github.com/repos/stephen-hoover/pandas/tags","blobs_url":"https://api.github.com/repos/stephen-hoover/pandas/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/stephen-hoover/pandas/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/stephen-hoover/pandas/git/refs{/sha}","trees_url":"https://api.github.com/repos/stephen-hoover/pandas/git/trees{/sha}","statuses_url":"https://api.github.com/repos/stephen-hoover/pandas/statuses/{sha}","languages_url":"https://api.github.com/repos/stephen-hoover/pandas/languages","stargazers_url":"https://api.github.com/repos/stephen-hoover/pandas/stargazers","contributors_url":"https://api.github.com/repos/stephen-hoover/pandas/contributors","subscribers_url":"https://api.github.com/repos/stephen-hoover/pandas/subscribers","subscription_url":"https://api.github.com/repos/stephen-hoover/pandas/subscription","commits_url":"https://api.github.com/repos/stephen-hoover/pandas/commits{/sha}","git_commits_url":"https://api.github.com/repos/stephen-hoover/pandas/git/commits{/sha}","comments_url":"https://api.github.com/repos/stephen-hoover/pandas/comments{/number}","issue_comment_url":"https://api.github.com/repos/stephen-hoover/pandas/issues/comments{/number}","contents_url":"https://api.github.com/repos/stephen-hoover/pandas/contents/{+path}","compare_url":"https://api.github.com/repos/stephen-hoover/pandas/compare/{base}...{head}","merges_url":"https://api.github.com/repos/stephen-hoover/pandas/merges","archive_url":"https://api.github.com/repos/stephen-hoover/pandas/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/stephen-hoover/pandas/downloads","issues_url":"https://api.github.com/repos/stephen-hoover/pandas/issues{/number}","pulls_url":"https://api.github.com/repos/stephen-hoover/pandas/pulls{/number}","milestones_url":"https://api.github.com/repos/stephen-hoover/pandas/milestones{/number}","notifications_url":"https://api.github.com/repos/stephen-hoover/pandas/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/stephen-hoover/pandas/labels{/name}","releases_url":"https://api.github.com/repos/stephen-hoover/pandas/releases{/id}","deployments_url":"https://api.github.com/repos/stephen-hoover/pandas/deployments","created_at":"2015-07-16T19:06:19Z","updated_at":"2016-01-23T13:32:46Z","pushed_at":"2016-02-18T03:54:07Z","git_url":"git://github.com/stephen-hoover/pandas.git","ssh_url":"git@github.com:stephen-hoover/pandas.git","clone_url":"https://github.com/stephen-hoover/pandas.git","svn_url":"https://github.com/stephen-hoover/pandas","homepage":"http://pandas.pydata.org","size":75264,"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":"596036cd2626424c0fb69f83b3bf67739290510d","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}","deployments_url":"https://api.github.com/repos/pydata/pandas/deployments","created_at":"2010-08-24T01:37:33Z","updated_at":"2016-02-18T11:39:01Z","pushed_at":"2016-02-18T13:15:00Z","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":137285,"stargazers_count":5731,"watchers_count":5731,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2277,"mirror_url":null,"open_issues_count":1602,"forks":2277,"open_issues":1602,"watchers":5731,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/pydata/pandas/pulls/12362"},"html":{"href":"https://github.com/pydata/pandas/pull/12362"},"issue":{"href":"https://api.github.com/repos/pydata/pandas/issues/12362"},"comments":{"href":"https://api.github.com/repos/pydata/pandas/issues/12362/comments"},"review_comments":{"href":"https://api.github.com/repos/pydata/pandas/pulls/12362/comments"},"review_comment":{"href":"https://api.github.com/repos/pydata/pandas/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/pydata/pandas/pulls/12362/commits"},"statuses":{"href":"https://api.github.com/repos/pydata/pandas/statuses/1a2bdc5466739a9676fc29d9816f17943985e35c"}}}}