|
9 | 9 | import matplotlib.units as units
|
10 | 10 | import numpy as np
|
11 | 11 |
|
12 |
| -from pandas._libs import tslibs |
| 12 | +from pandas._libs import lib, tslibs |
13 | 13 | from pandas._libs.tslibs import resolution
|
14 | 14 | import pandas.compat as compat
|
15 | 15 | from pandas.compat import lrange
|
16 | 16 |
|
17 | 17 | from pandas.core.dtypes.common import (
|
18 | 18 | is_datetime64_ns_dtype, is_float, is_float_dtype, is_integer,
|
19 |
| - is_integer_dtype, is_nested_list_like, is_period_arraylike) |
| 19 | + is_integer_dtype, is_nested_list_like) |
20 | 20 | from pandas.core.dtypes.generic import ABCSeries
|
21 | 21 |
|
22 | 22 | import pandas.core.common as com
|
@@ -242,13 +242,15 @@ def _convert_1d(values, units, axis):
|
242 | 242 | if (isinstance(values, valid_types) or is_integer(values) or
|
243 | 243 | is_float(values)):
|
244 | 244 | return get_datevalue(values, axis.freq)
|
245 |
| - if isinstance(values, PeriodIndex): |
| 245 | + elif isinstance(values, PeriodIndex): |
246 | 246 | return values.asfreq(axis.freq)._ndarray_values
|
247 |
| - if isinstance(values, Index): |
| 247 | + elif isinstance(values, Index): |
248 | 248 | return values.map(lambda x: get_datevalue(x, axis.freq))
|
249 |
| - if is_period_arraylike(values): |
| 249 | + elif lib.infer_dtype(values) == 'period': |
| 250 | + # https://github.com/pandas-dev/pandas/issues/24304 |
| 251 | + # convert ndarray[period] -> PeriodIndex |
250 | 252 | return PeriodIndex(values, freq=axis.freq)._ndarray_values
|
251 |
| - if isinstance(values, (list, tuple, np.ndarray, Index)): |
| 253 | + elif isinstance(values, (list, tuple, np.ndarray, Index)): |
252 | 254 | return [get_datevalue(x, axis.freq) for x in values]
|
253 | 255 | return values
|
254 | 256 |
|
|
0 commit comments