我正在看Wes关于熊猫时间序列的视频。他提到,如果您尝试对索引无序的时间序列索引进行切片,Pandas会抛出异常。
然而,当我自己尝试时,它似乎起作用了。不过,我不明白为什么。
下面是一个例子:
我使用了Wes McKinney talk中关于熊猫时间序列的一些代码示例(它在YouTube上)。但是,预期输出与实际输出不匹配。这个视频有点旧,来自2012年,所以也许他在后来的Pandas版本中做了这样的改变,但我想知道是不是这样,或者是我误解了他,或者我做错了什么。
我在基于Ubuntu 18.04的系统上运行Pandas版本0.22.0。
提前谢谢。
import numpy as np
import pandas as pd
ts = pd.Series(np.arange(1000), index = date_range)
ts2 = ts.take(np.random.permutation(len(ts)))
ts2['2015-01-01':'2016-01-01']我希望能拿到一个TimeSeriesError: Partial indexing only valid for ordered series.
实际上我得到的数据是这样的:
2015-08-27 238
2015-04-11 100
2015-08-17 228
2015-12-10 343
2015-08-06 217
2015-02-16 46
2015-01-29 28
...
2015-06-08 158
2015-04-16 105
2015-03-08 66
2015-11-22 325
2015-10-21 293
2015-10-04 276
2015-08-02 213
2015-09-19 261发布于 2019-01-30 23:33:52
它适用于字符串索引,但不适用于预期区域之外的datetime对象。(尽管它并不总是可预测的。)
import datetime as dt
ts2['2015-01-01':'2021-01-01'] # works
ts2[dt.date(2015, 1, 1):dt.date(2016, 1, 1)] # works
ts2[dt.date(2015, 1, 1):dt.date(2021, 1, 1)] # ValueError有an issue on Github,但Jeff Reback说这不是一个bug;文档确实警告过"unexpected behaviour“
https://stackoverflow.com/questions/54443852
复制相似问题