How to merge using index items with Pandas
I have two dataframes df_a and df_b. Both dataframes have index with three items (id / sub_id / sort_id).
I would like to merge these two dataframes with index items.
** df_a **
| c1 | c2 | c3 |
id | sub_id | sort_id | | | |
1 | 1 | 3 | a| b| c|
2 | 1 | 1 | a| b| c|
3 | 1 | 2 | a| b| c|
** df_b **
| c1 | c2 | c3 |
id | sub_id | sort_id | | | |
1 | 1 | 3 | x| y| z|
2 | 1 | 1 | x| y| z|
3 | 1 | 2 | x| y| z|
However I had a KeyError: 'id'
df_merge = pd.merge(df_a, df_b, how='left', left_index=True, right_index=True, left_on=['id','sub_id','sort_id'], right_on=['id','sub_id','sort_id'])
How can I merge these two dataframes?
python python-3.x pandas
add a comment |
I have two dataframes df_a and df_b. Both dataframes have index with three items (id / sub_id / sort_id).
I would like to merge these two dataframes with index items.
** df_a **
| c1 | c2 | c3 |
id | sub_id | sort_id | | | |
1 | 1 | 3 | a| b| c|
2 | 1 | 1 | a| b| c|
3 | 1 | 2 | a| b| c|
** df_b **
| c1 | c2 | c3 |
id | sub_id | sort_id | | | |
1 | 1 | 3 | x| y| z|
2 | 1 | 1 | x| y| z|
3 | 1 | 2 | x| y| z|
However I had a KeyError: 'id'
df_merge = pd.merge(df_a, df_b, how='left', left_index=True, right_index=True, left_on=['id','sub_id','sort_id'], right_on=['id','sub_id','sort_id'])
How can I merge these two dataframes?
python python-3.x pandas
add a comment |
I have two dataframes df_a and df_b. Both dataframes have index with three items (id / sub_id / sort_id).
I would like to merge these two dataframes with index items.
** df_a **
| c1 | c2 | c3 |
id | sub_id | sort_id | | | |
1 | 1 | 3 | a| b| c|
2 | 1 | 1 | a| b| c|
3 | 1 | 2 | a| b| c|
** df_b **
| c1 | c2 | c3 |
id | sub_id | sort_id | | | |
1 | 1 | 3 | x| y| z|
2 | 1 | 1 | x| y| z|
3 | 1 | 2 | x| y| z|
However I had a KeyError: 'id'
df_merge = pd.merge(df_a, df_b, how='left', left_index=True, right_index=True, left_on=['id','sub_id','sort_id'], right_on=['id','sub_id','sort_id'])
How can I merge these two dataframes?
python python-3.x pandas
I have two dataframes df_a and df_b. Both dataframes have index with three items (id / sub_id / sort_id).
I would like to merge these two dataframes with index items.
** df_a **
| c1 | c2 | c3 |
id | sub_id | sort_id | | | |
1 | 1 | 3 | a| b| c|
2 | 1 | 1 | a| b| c|
3 | 1 | 2 | a| b| c|
** df_b **
| c1 | c2 | c3 |
id | sub_id | sort_id | | | |
1 | 1 | 3 | x| y| z|
2 | 1 | 1 | x| y| z|
3 | 1 | 2 | x| y| z|
However I had a KeyError: 'id'
df_merge = pd.merge(df_a, df_b, how='left', left_index=True, right_index=True, left_on=['id','sub_id','sort_id'], right_on=['id','sub_id','sort_id'])
How can I merge these two dataframes?
python python-3.x pandas
python python-3.x pandas
edited Nov 27 '18 at 7:29
Ivan Kolesnikov
1,26111032
1,26111032
asked Nov 27 '18 at 3:22
tajihirotajihiro
4571617
4571617
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Since you are trying to merge on the index, you specify left_index=True, right_index=True
, which is correct, but then you can't specify left_on
or right_on
(the information is redundant, and not accepted):
>>> pd.merge(df_a, df_b, left_index=True, right_index=True)
c1_x c2_x c3_x c1_y c2_y c3_y
id sub_id sort_id
1 1 3 a b c x y z
2 1 1 a b c x y z
3 1 2 a b c x y z
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53492258%2fhow-to-merge-using-index-items-with-pandas%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Since you are trying to merge on the index, you specify left_index=True, right_index=True
, which is correct, but then you can't specify left_on
or right_on
(the information is redundant, and not accepted):
>>> pd.merge(df_a, df_b, left_index=True, right_index=True)
c1_x c2_x c3_x c1_y c2_y c3_y
id sub_id sort_id
1 1 3 a b c x y z
2 1 1 a b c x y z
3 1 2 a b c x y z
add a comment |
Since you are trying to merge on the index, you specify left_index=True, right_index=True
, which is correct, but then you can't specify left_on
or right_on
(the information is redundant, and not accepted):
>>> pd.merge(df_a, df_b, left_index=True, right_index=True)
c1_x c2_x c3_x c1_y c2_y c3_y
id sub_id sort_id
1 1 3 a b c x y z
2 1 1 a b c x y z
3 1 2 a b c x y z
add a comment |
Since you are trying to merge on the index, you specify left_index=True, right_index=True
, which is correct, but then you can't specify left_on
or right_on
(the information is redundant, and not accepted):
>>> pd.merge(df_a, df_b, left_index=True, right_index=True)
c1_x c2_x c3_x c1_y c2_y c3_y
id sub_id sort_id
1 1 3 a b c x y z
2 1 1 a b c x y z
3 1 2 a b c x y z
Since you are trying to merge on the index, you specify left_index=True, right_index=True
, which is correct, but then you can't specify left_on
or right_on
(the information is redundant, and not accepted):
>>> pd.merge(df_a, df_b, left_index=True, right_index=True)
c1_x c2_x c3_x c1_y c2_y c3_y
id sub_id sort_id
1 1 3 a b c x y z
2 1 1 a b c x y z
3 1 2 a b c x y z
answered Nov 27 '18 at 3:32
sacuLsacuL
30.5k41942
30.5k41942
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53492258%2fhow-to-merge-using-index-items-with-pandas%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown