|
8 | 8 |
|
9 | 9 | import numpy as np
|
10 | 10 |
|
11 |
| -<<<<<<< HEAD |
12 | 11 | from pandas._libs import hashtable as libhashtable, join as libjoin, lib
|
13 | 12 | import pandas.compat as compat
|
14 | 13 | from pandas.compat import filter, lzip, map, range, zip
|
15 | 14 | from pandas.errors import MergeError
|
16 |
| -======= |
17 |
| -from pandas import (Categorical, DataFrame, |
18 |
| - Index, MultiIndex, Timedelta, Series) |
19 |
| -from pandas.core.arrays.categorical import _recode_for_categories |
20 |
| -from pandas.core.frame import _merge_doc |
21 |
| -from pandas.core.dtypes.common import ( |
22 |
| - is_datetime64tz_dtype, |
23 |
| - is_datetime64_dtype, |
24 |
| - needs_i8_conversion, |
25 |
| - is_int64_dtype, |
26 |
| - is_array_like, |
27 |
| - is_categorical_dtype, |
28 |
| - is_integer_dtype, |
29 |
| - is_float_dtype, |
30 |
| - is_number, |
31 |
| - is_numeric_dtype, |
32 |
| - is_integer, |
33 |
| - is_extension_array_dtype, |
34 |
| - is_int_or_datetime_dtype, |
35 |
| - is_dtype_equal, |
36 |
| - is_bool, |
37 |
| - is_bool_dtype, |
38 |
| - is_list_like, |
39 |
| - is_datetimelike, |
40 |
| - ensure_int64, |
41 |
| - ensure_float64, |
42 |
| - ensure_object, |
43 |
| - _get_dtype) |
44 |
| -from pandas.core.dtypes.missing import na_value_for_dtype |
45 |
| -from pandas.core.internals import (items_overlap_with_suffix, |
46 |
| - concatenate_block_managers) |
47 |
| ->>>>>>> fix bug #GH23020 |
48 | 15 | from pandas.util._decorators import Appender, Substitution
|
49 | 16 |
|
50 | 17 | from pandas.core.dtypes.common import (
|
51 | 18 | ensure_float64, ensure_int64, ensure_object, is_array_like, is_bool,
|
52 | 19 | is_bool_dtype, is_categorical_dtype, is_datetime64_dtype,
|
53 | 20 | is_datetime64tz_dtype, is_datetimelike, is_dtype_equal, is_float_dtype,
|
54 | 21 | is_int64_dtype, is_int_or_datetime_dtype, is_integer, is_integer_dtype,
|
55 |
| - is_list_like, is_number, is_numeric_dtype, needs_i8_conversion) |
| 22 | + is_list_like, is_number, is_numeric_dtype, is_extension_array_dtype, |
| 23 | + needs_i8_conversion) |
56 | 24 | from pandas.core.dtypes.missing import isnull, na_value_for_dtype
|
57 | 25 |
|
58 | 26 | from pandas import Categorical, DataFrame, Index, MultiIndex, Series, Timedelta
|
@@ -1551,10 +1519,12 @@ def _factorize_keys(lk, rk, sort=True):
|
1551 | 1519 |
|
1552 | 1520 | lk = ensure_int64(lk.codes)
|
1553 | 1521 | rk = ensure_int64(rk)
|
1554 |
| - elif is_extension_array_dtype(lk) and is_extension_array_dtype(rk): |
| 1522 | + elif (is_extension_array_dtype(lk) and |
| 1523 | + is_extension_array_dtype(rk) and |
| 1524 | + lk.dtype == rk.dtype): |
1555 | 1525 | klass = libhashtable.Factorizer
|
1556 |
| - lk = ensure_object(lk) |
1557 |
| - rk = ensure_object(rk) |
| 1526 | + lk, _ = lk._values_for_factorize() |
| 1527 | + rk, _ = rk._values_for_factorize() |
1558 | 1528 | elif is_int_or_datetime_dtype(lk) and is_int_or_datetime_dtype(rk):
|
1559 | 1529 | klass = libhashtable.Int64Factorizer
|
1560 | 1530 | lk = ensure_int64(com.values_from_object(lk))
|
|
0 commit comments