排序DateTimeIndex

时间:2019-02-24 18:06:58

标签: pandas

here所述,在对DateTimeIndex进行排序时,Pandas.sort_index()有时会发出FutureWarning。该问题不可行,因为它不包含MCVE。这是一个:

import pandas as pd
idx = pd.DatetimeIndex(['2017-07-05 07:00:00', '2018-07-05 07:15:00','2017-07-05 07:30:00'])
df = pd.DataFrame({'C1':['a','b','c']},index=idx)
df = df.tz_localize('UTC')
df.sort_index()

警告看起来像:

  

FutureWarning:将时区感知的DatetimeArray转换为   dtype为“ datetime64 [ns]”的时区未使用ndarray

堆栈(Pandas 0.24.1)是:

__array__, datetimes.py:358
asanyarray, numeric.py:544
nargsort, sorting.py:257
sort_index, frame.py:4795

错误是从datetimes.py发出的,要求使用dtype参数调用它。但是,没有办法强制通过nargsort一直进行下去-似乎服从datetimes.py的请求将要求同时更改pandas和numpy。

已报告here。同时,您能想到我错过的解决方法吗?

1 个答案:

答案 0 :(得分:0)

问题已确认为0.24.2里程碑。解决方法是过滤警告,因此:

with warnings.catch_warnings():
    # Pandas 0.24.1 emits useless warning when sorting tz-aware index
    warnings.simplefilter("ignore")
    ds = df.sort_index()