Pandas Dataframe Multiindex Merge

learningToCode

I wanted to ask a questions regarding merging multiindex dataframe in pandas, here is a hypothetical scenario:

arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],
            ['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']]
tuples = list(zip(*arrays))
index1 = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
index2 = pd.MultiIndex.from_tuples(tuples, names=['third', 'fourth'])

s1 = pd.DataFrame(np.random.randn(8), index=index1, columns=['s1'])
s2 = pd.DataFrame(np.random.randn(8), index=index2, columns=['s2'])

Then either

s1.merge(s2, how='left', left_index=True, right_index=True)

or

s1.merge(s2, how='left', left_on=['first', 'second'], right_on=['third', 'fourth'])

will result in error.

Do I have to do reset_index() on either s1/s2 to make this work?

Thanks

ALollz

Seems like you need to use a combination of them.

s1.merge(s2, left_index=True, right_on=['third', 'fourth'])
#s1.merge(s2, right_index=True, left_on=['first', 'second'])

Output:

               s1        s2
bar one  0.765385 -0.365508
    two  1.462860  0.751862
baz one  0.304163  0.761663
    two -0.816658 -1.810634
foo one  1.891434  1.450081
    two  0.571294  1.116862
qux one  1.056516 -0.052927
    two -0.574916 -1.197596

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Merge pandas DataFrame with MultiIndex

From Dev

Pandas Dataframe Multiindex Merge

From Dev

Pandas dataframe with multiindex column - merge levels

From Dev

concatinate pandas dataframe to multiindex

From Dev

reindex multiindex pandas dataframe

From Dev

Pandas multiIndex DataFrame sort

From Dev

pandas indexing in multiindex dataframe

From Dev

Building MultiIndex in Pandas DataFrame

From Dev

MultiIndex Pandas From Dataframe

From Dev

Pandas MultiIndex DataFrame Sorting

From Dev

Indexing with multiindex dataframe in pandas

From Dev

Resampling a pandas MultiIndex dataframe

From Dev

Update a Pandas MultiIndex DataFrame

From Dev

Make multiindex columns in a pandas dataframe

From Java

Pandas: Collapse rows in a Multiindex dataframe

From Java

Select rows in pandas MultiIndex DataFrame

From Dev

grouping and summing multiindex dataframe in pandas

From Dev

concat MultiIndex pandas DataFrame columns

From Dev

Pandas: bar plot with multiIndex dataframe

From Dev

Reindex sublevel of pandas dataframe multiindex

From Dev

pandas, how to access multiIndex dataframe?

From Java

Slow pandas DataFrame MultiIndex reindex

From Dev

Load CSV to Pandas MultiIndex DataFrame

From Dev

Advanced averaging with multiindex dataframe in pandas

From Dev

pandas dataframe select columns in multiindex

From Dev

Python Pandas: Transform multiindex dataframe

From Dev

Reorder levels of MultiIndex in a pandas DataFrame

From Dev

create multiindex from dataframe pandas

From Dev

Multiindex to different columns in Pandas Dataframe