{"action":"created","comment":{"url":"https://api.github.com/repos/pydata/pandas/pulls/comments/73878437","id":73878437,"diff_hunk":"@@ -78,34 +78,40 @@ some configurable handling of \"what to do with the other axes\":\n ::\n \n     pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,\n-              keys=None, levels=None, names=None, verify_integrity=False)\n+              keys=None, levels=None, names=None, verify_integrity=False,\n+              union_categoricals=False, copy=True)","path":"doc/source/merging.rst","position":6,"original_position":6,"commit_id":"0d053c7e09bcb3bcc7004f66623e93989411ec00","original_commit_id":"0d053c7e09bcb3bcc7004f66623e93989411ec00","user":{"login":"janschulz","id":890156,"avatar_url":"https://avatars.githubusercontent.com/u/890156?v=3","gravatar_id":"","url":"https://api.github.com/users/janschulz","html_url":"https://github.com/janschulz","followers_url":"https://api.github.com/users/janschulz/followers","following_url":"https://api.github.com/users/janschulz/following{/other_user}","gists_url":"https://api.github.com/users/janschulz/gists{/gist_id}","starred_url":"https://api.github.com/users/janschulz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/janschulz/subscriptions","organizations_url":"https://api.github.com/users/janschulz/orgs","repos_url":"https://api.github.com/users/janschulz/repos","events_url":"https://api.github.com/users/janschulz/events{/privacy}","received_events_url":"https://api.github.com/users/janschulz/received_events","type":"User","site_admin":false},"body":"Is it needed to \"leak\" the implementation detail in the kw argument here?","created_at":"2016-08-08T13:53:58Z","updated_at":"2016-08-08T13:53:58Z","html_url":"https://github.com/pydata/pandas/pull/13767#discussion_r73878437","pull_request_url":"https://api.github.com/repos/pydata/pandas/pulls/13767","_links":{"self":{"href":"https://api.github.com/repos/pydata/pandas/pulls/comments/73878437"},"html":{"href":"https://github.com/pydata/pandas/pull/13767#discussion_r73878437"},"pull_request":{"href":"https://api.github.com/repos/pydata/pandas/pulls/13767"}}},"pull_request":{"url":"https://api.github.com/repos/pydata/pandas/pulls/13767","id":78587106,"html_url":"https://github.com/pydata/pandas/pull/13767","diff_url":"https://github.com/pydata/pandas/pull/13767.diff","patch_url":"https://github.com/pydata/pandas/pull/13767.patch","issue_url":"https://api.github.com/repos/pydata/pandas/issues/13767","number":13767,"state":"open","locked":false,"title":"ENH: concat and append now can handle unordered categories","user":{"login":"sinhrks","id":1696302,"avatar_url":"https://avatars.githubusercontent.com/u/1696302?v=3","gravatar_id":"","url":"https://api.github.com/users/sinhrks","html_url":"https://github.com/sinhrks","followers_url":"https://api.github.com/users/sinhrks/followers","following_url":"https://api.github.com/users/sinhrks/following{/other_user}","gists_url":"https://api.github.com/users/sinhrks/gists{/gist_id}","starred_url":"https://api.github.com/users/sinhrks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sinhrks/subscriptions","organizations_url":"https://api.github.com/users/sinhrks/orgs","repos_url":"https://api.github.com/users/sinhrks/repos","events_url":"https://api.github.com/users/sinhrks/events{/privacy}","received_events_url":"https://api.github.com/users/sinhrks/received_events","type":"User","site_admin":false},"body":" - [x] closes #13524\r\n - [x] tests added / passed\r\n - [x] passes ``git diff upstream/master | flake8 --diff``\r\n - [x] whatsnew entry\r\n\r\n**on current master:**\r\n\r\n```\r\n# different categoricals\r\npd.concat([pd.Series([1, 2], dtype='category'),\r\n           pd.Series([3, 4], dtype='category')])\r\n# ValueError: incompatible categories in categorical concat\r\n\r\n# categorical + normal (values are contained in categories) -> object dtype\r\npd.concat([pd.Series([1, 2], dtype='category'),\r\n           pd.Series([1, 2])])\r\n# 0    1\r\n# 1    2\r\n# 0    1\r\n# 1    2\r\n# dtype: object\r\n\r\n# categorical + normal (values are not contained in categories) -> object dtype\r\npd.concat([pd.Series([1, 2], dtype='category'),\r\n           pd.Series([3, 4])])\r\n# 0    1\r\n# 1    2\r\n# 0    3\r\n# 1    4\r\n# dtype: object\r\n```\r\n\r\n**this PR (updated according to the discussion):**\r\n\r\n```\r\n# different categoricals\r\npd.concat([pd.Series([1, 2], dtype='category'),\r\n           pd.Series([3, 4], dtype='category')])\r\n# 0    1\r\n# 1    2\r\n# 0    3\r\n# 1    4\r\n# dtype: int64\r\n\r\n# specifying union_categoricals keeps category if possible\r\npd.concat([pd.Series([1, 2], dtype='category'),\r\n           pd.Series([3, 4], dtype='category')], union_categoricals=True)\r\n# 0    1\r\n# 1    2\r\n# 0    3\r\n# 1    4\r\n# dtype: category\r\nCategories (4, int64): [1, 2, 3, 4]\r\n\r\n# categorical + normal (values are contained in categories) -> category dtype\r\npd.concat([pd.Series([1, 2], dtype='category'),\r\n           pd.Series([1, 2])])\r\n# 0    1\r\n# 1    2\r\n# 0    1\r\n# 1    2\r\n# dtype: int64\r\n\r\n# categorical + normal (values are not contained in categories) -> int dtype (keep original dtype)\r\npd.concat([pd.Series([1, 2], dtype='category'),\r\n           pd.Series([3, 4])])\r\n# 0    1\r\n# 1    2\r\n# 0    3\r\n# 1    4\r\n# dtype: int64\r\n```\r\n\r\nCC: @janschulz, @chris-b1","created_at":"2016-07-24T01:33:28Z","updated_at":"2016-08-08T13:53:58Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a231847b1bec62befa7af9b932be280ebb0d4452","assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/pydata/pandas/milestones/40","html_url":"https://github.com/pydata/pandas/milestones/0.19.0","labels_url":"https://api.github.com/repos/pydata/pandas/milestones/40/labels","id":1639795,"number":40,"title":"0.19.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":187,"closed_issues":483,"state":"open","created_at":"2016-03-11T21:24:45Z","updated_at":"2016-08-08T12:46:12Z","due_on":"2016-08-30T22:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/pydata/pandas/pulls/13767/commits","review_comments_url":"https://api.github.com/repos/pydata/pandas/pulls/13767/comments","review_comment_url":"https://api.github.com/repos/pydata/pandas/pulls/comments{/number}","comments_url":"https://api.github.com/repos/pydata/pandas/issues/13767/comments","statuses_url":"https://api.github.com/repos/pydata/pandas/statuses/0d053c7e09bcb3bcc7004f66623e93989411ec00","head":{"label":"sinhrks:append_categorical","ref":"append_categorical","sha":"0d053c7e09bcb3bcc7004f66623e93989411ec00","user":{"login":"sinhrks","id":1696302,"avatar_url":"https://avatars.githubusercontent.com/u/1696302?v=3","gravatar_id":"","url":"https://api.github.com/users/sinhrks","html_url":"https://github.com/sinhrks","followers_url":"https://api.github.com/users/sinhrks/followers","following_url":"https://api.github.com/users/sinhrks/following{/other_user}","gists_url":"https://api.github.com/users/sinhrks/gists{/gist_id}","starred_url":"https://api.github.com/users/sinhrks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sinhrks/subscriptions","organizations_url":"https://api.github.com/users/sinhrks/orgs","repos_url":"https://api.github.com/users/sinhrks/repos","events_url":"https://api.github.com/users/sinhrks/events{/privacy}","received_events_url":"https://api.github.com/users/sinhrks/received_events","type":"User","site_admin":false},"repo":{"id":17763851,"name":"pandas","full_name":"sinhrks/pandas","owner":{"login":"sinhrks","id":1696302,"avatar_url":"https://avatars.githubusercontent.com/u/1696302?v=3","gravatar_id":"","url":"https://api.github.com/users/sinhrks","html_url":"https://github.com/sinhrks","followers_url":"https://api.github.com/users/sinhrks/followers","following_url":"https://api.github.com/users/sinhrks/following{/other_user}","gists_url":"https://api.github.com/users/sinhrks/gists{/gist_id}","starred_url":"https://api.github.com/users/sinhrks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sinhrks/subscriptions","organizations_url":"https://api.github.com/users/sinhrks/orgs","repos_url":"https://api.github.com/users/sinhrks/repos","events_url":"https://api.github.com/users/sinhrks/events{/privacy}","received_events_url":"https://api.github.com/users/sinhrks/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/sinhrks/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/sinhrks/pandas","forks_url":"https://api.github.com/repos/sinhrks/pandas/forks","keys_url":"https://api.github.com/repos/sinhrks/pandas/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sinhrks/pandas/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sinhrks/pandas/teams","hooks_url":"https://api.github.com/repos/sinhrks/pandas/hooks","issue_events_url":"https://api.github.com/repos/sinhrks/pandas/issues/events{/number}","events_url":"https://api.github.com/repos/sinhrks/pandas/events","assignees_url":"https://api.github.com/repos/sinhrks/pandas/assignees{/user}","branches_url":"https://api.github.com/repos/sinhrks/pandas/branches{/branch}","tags_url":"https://api.github.com/repos/sinhrks/pandas/tags","blobs_url":"https://api.github.com/repos/sinhrks/pandas/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sinhrks/pandas/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sinhrks/pandas/git/refs{/sha}","trees_url":"https://api.github.com/repos/sinhrks/pandas/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sinhrks/pandas/statuses/{sha}","languages_url":"https://api.github.com/repos/sinhrks/pandas/languages","stargazers_url":"https://api.github.com/repos/sinhrks/pandas/stargazers","contributors_url":"https://api.github.com/repos/sinhrks/pandas/contributors","subscribers_url":"https://api.github.com/repos/sinhrks/pandas/subscribers","subscription_url":"https://api.github.com/repos/sinhrks/pandas/subscription","commits_url":"https://api.github.com/repos/sinhrks/pandas/commits{/sha}","git_commits_url":"https://api.github.com/repos/sinhrks/pandas/git/commits{/sha}","comments_url":"https://api.github.com/repos/sinhrks/pandas/comments{/number}","issue_comment_url":"https://api.github.com/repos/sinhrks/pandas/issues/comments{/number}","contents_url":"https://api.github.com/repos/sinhrks/pandas/contents/{+path}","compare_url":"https://api.github.com/repos/sinhrks/pandas/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sinhrks/pandas/merges","archive_url":"https://api.github.com/repos/sinhrks/pandas/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sinhrks/pandas/downloads","issues_url":"https://api.github.com/repos/sinhrks/pandas/issues{/number}","pulls_url":"https://api.github.com/repos/sinhrks/pandas/pulls{/number}","milestones_url":"https://api.github.com/repos/sinhrks/pandas/milestones{/number}","notifications_url":"https://api.github.com/repos/sinhrks/pandas/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sinhrks/pandas/labels{/name}","releases_url":"https://api.github.com/repos/sinhrks/pandas/releases{/id}","deployments_url":"https://api.github.com/repos/sinhrks/pandas/deployments","created_at":"2014-03-14T23:35:33Z","updated_at":"2016-01-28T14:16:57Z","pushed_at":"2016-08-08T11:21:08Z","git_url":"git://github.com/sinhrks/pandas.git","ssh_url":"git@github.com:sinhrks/pandas.git","clone_url":"https://github.com/sinhrks/pandas.git","svn_url":"https://github.com/sinhrks/pandas","homepage":"http://pandas.pydata.org","size":79222,"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":"142c7968a1918fd56b7ad40ea7c013a48b0c25fc","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-08-08T08:18:23Z","pushed_at":"2016-08-08T12:46: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":149948,"stargazers_count":6792,"watchers_count":6792,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2810,"mirror_url":null,"open_issues_count":1819,"forks":2810,"open_issues":1819,"watchers":6792,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/pydata/pandas/pulls/13767"},"html":{"href":"https://github.com/pydata/pandas/pull/13767"},"issue":{"href":"https://api.github.com/repos/pydata/pandas/issues/13767"},"comments":{"href":"https://api.github.com/repos/pydata/pandas/issues/13767/comments"},"review_comments":{"href":"https://api.github.com/repos/pydata/pandas/pulls/13767/comments"},"review_comment":{"href":"https://api.github.com/repos/pydata/pandas/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/pydata/pandas/pulls/13767/commits"},"statuses":{"href":"https://api.github.com/repos/pydata/pandas/statuses/0d053c7e09bcb3bcc7004f66623e93989411ec00"}}}}
{"actor":{"display_login":"janschulz"}}