如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。同时,您能想到我错过的解决方法吗?
答案 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()