MCPcopy
hub / github.com/pandas-dev/pandas / test_join_multiindex

Method test_join_multiindex

pandas/tests/reshape/merge/test_join.py:362–403  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

360 d.join(a)
361
362 def test_join_multiindex(self):
363 index1 = MultiIndex.from_arrays(
364 [["a", "a", "a", "b", "b", "b"], [1, 2, 3, 1, 2, 3]],
365 names=["first", "second"],
366 )
367
368 index2 = MultiIndex.from_arrays(
369 [["b", "b", "b", "c", "c", "c"], [1, 2, 3, 1, 2, 3]],
370 names=["first", "second"],
371 )
372
373 df1 = DataFrame(
374 data=np.random.default_rng(2).standard_normal(6),
375 index=index1,
376 columns=["var X"],
377 )
378 df2 = DataFrame(
379 data=np.random.default_rng(2).standard_normal(6),
380 index=index2,
381 columns=["var Y"],
382 )
383
384 df1 = df1.sort_index(level=0)
385 df2 = df2.sort_index(level=0)
386
387 joined = df1.join(df2, how="outer")
388 ex_index = Index(index1.values).union(Index(index2.values))
389 expected = df1.reindex(ex_index).join(df2.reindex(ex_index))
390 expected.index.names = index1.names
391 tm.assert_frame_equal(joined, expected)
392 assert joined.index.names == index1.names
393
394 df1 = df1.sort_index(level=1)
395 df2 = df2.sort_index(level=1)
396
397 joined = df1.join(df2, how="outer").sort_index(level=0)
398 ex_index = Index(index1.values).union(Index(index2.values))
399 expected = df1.reindex(ex_index).join(df2.reindex(ex_index))
400 expected.index.names = index1.names
401
402 tm.assert_frame_equal(joined, expected)
403 assert joined.index.names == index1.names
404
405 def test_join_inner_multiindex(self, lexsorted_two_level_string_multiindex):
406 key1 = ["bar", "bar", "bar", "foo", "foo", "baz", "baz", "qux", "qux", "snap"]

Callers

nothing calls this directly

Calls 8

sort_indexMethod · 0.95
joinMethod · 0.95
reindexMethod · 0.95
DataFrameClass · 0.90
IndexClass · 0.90
from_arraysMethod · 0.45
unionMethod · 0.45
sort_indexMethod · 0.45

Tested by

no test coverage detected