|
1 | 1 | # -*- coding: utf-8 -*-
|
2 | 2 |
|
3 | 3 | import numpy as np
|
4 |
| -from pandas import Index |
| 4 | +from pandas import Index, DataFrame, Categorical, merge |
5 | 5 |
|
6 | 6 | from pandas._libs import join as _join
|
7 | 7 | import pandas.util.testing as tm
|
8 |
| -from pandas.util.testing import assert_almost_equal |
| 8 | +from pandas.util.testing import assert_almost_equal, assert_frame_equal |
9 | 9 |
|
10 | 10 |
|
11 | 11 | class TestIndexer(object):
|
@@ -196,20 +196,38 @@ def test_inner_join_indexer2():
|
196 | 196 |
|
197 | 197 | def test_merge_join_categorical_multiindex():
|
198 | 198 | # From issue 16627
|
199 |
| - import pandas as pd |
200 |
| - a = {'Cat1': pd.Categorical(['a', 'b', 'a', 'c', 'a', 'b'], |
201 |
| - ['a', 'b', 'c']), |
| 199 | + a = {'Cat1': Categorical(['a', 'b', 'a', 'c', 'a', 'b'], |
| 200 | + ['a', 'b', 'c']), |
202 | 201 | 'Int1': [0, 1, 0, 1, 0, 0]}
|
203 |
| - a = pd.DataFrame(a) |
| 202 | + a = DataFrame(a) |
204 | 203 |
|
205 |
| - b = {'Cat': pd.Categorical(['a', 'b', 'c', 'a', 'b', 'c'], |
206 |
| - ['a', 'b', 'c']), |
| 204 | + b = {'Cat': Categorical(['a', 'b', 'c', 'a', 'b', 'c'], |
| 205 | + ['a', 'b', 'c']), |
207 | 206 | 'Int': [0, 0, 0, 1, 1, 1],
|
208 | 207 | 'Factor': [1.1, 1.2, 1.3, 1.4, 1.5, 1.6]}
|
209 |
| - b = pd.DataFrame(b).set_index(['Cat', 'Int'])['Factor'] |
| 208 | + b = DataFrame(b).set_index(['Cat', 'Int'])['Factor'] |
210 | 209 |
|
211 |
| - c = pd.merge(a, b.reset_index(), left_on=['Cat1', 'Int1'], |
212 |
| - right_on=['Cat', 'Int'], how='left') |
| 210 | + c = merge(a, b.reset_index(), left_on=['Cat1', 'Int1'], |
| 211 | + right_on=['Cat', 'Int'], how='left') |
213 | 212 | d = a.join(b, on=['Cat1', 'Int1'])
|
214 | 213 | c = c.drop(['Cat', 'Int'], axis=1)
|
215 |
| - assert_almost_equal(c, d) |
| 214 | + assert_frame_equal(c, d) |
| 215 | + |
| 216 | + a = {'Cat1': Categorical(['a', 'b', 'a', 'c', 'a', 'b'], |
| 217 | + ['b', 'a', 'c'], |
| 218 | + ordered=True), |
| 219 | + 'Int1': [0, 1, 0, 1, 0, 0]} |
| 220 | + a = DataFrame(a) |
| 221 | + |
| 222 | + b = {'Cat': Categorical(['a', 'b', 'c', 'a', 'b', 'c'], |
| 223 | + ['b', 'a', 'c'], |
| 224 | + ordered=True), |
| 225 | + 'Int': [0, 0, 0, 1, 1, 1], |
| 226 | + 'Factor': [1.1, 1.2, 1.3, 1.4, 1.5, 1.6]} |
| 227 | + b = DataFrame(b).set_index(['Cat', 'Int'])['Factor'] |
| 228 | + |
| 229 | + c = merge(a, b.reset_index(), left_on=['Cat1', 'Int1'], |
| 230 | + right_on=['Cat', 'Int'], how='left') |
| 231 | + d = a.join(b, on=['Cat1', 'Int1']) |
| 232 | + c = c.drop(['Cat', 'Int'], axis=1) |
| 233 | + assert_frame_equal(c, d) |
0 commit comments