|
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