我正在努力使用不同的pandas索引格式。
我的单变量时间序列(数据)看起来像这样
2015-01-01 22:00:01.973 1.210525
2015-01-01 22:00:03.297 1.210490
2015-01-01 22:00:23.922 1.210485
2015-01-01 22:00:24.507 1.210480
2015-01-01 22:01:05.979 1.210490
2015-01-01 22:01:08.390 1.210525
2015-01-01 22:01:09.899 1.210520
2015-01-01 22:01:09.950 1.210505
2015-01-01 22:01:13.576 1.210505
2015-01-01 22:01:19.984 1.210485
2015-01-01 22:01:27.936 1.210510
,其中
>>> type(data)
<class 'pandas.core.series.Series'>
>>> type(data.index)
<class 'pandas.tseries.index.DatetimeIndex'>
>>>
我有一个提取起点和终点的函数,比如说
>>>start
textdate
2015-01-01 22:00:03.297 1.210490
Name: mean, dtype: float64
>>>
>>>end
textdate
2015-01-01 22:01:19.984 1.210485
Name: mean, dtype: float64
>>>
如何根据看起来像DatetimeIndex格式的索引值从头到尾切片系列
>>> start.index
DatetimeIndex(['2015-01-01 22:00:03.297'], dtype='datetime64[ns]', name=u'textdate', freq=None)
>>>
我试过这个
series = data[start.index : end.index]
给了我
TypeError: Cannot convert input to Timestamp
但我无法将DatetimeIndex对象的开始和结束转换为时间戳......
答案 0 :(得分:1)
我认为你在切片中使用Series
的引用。而是尝试:
series = data[start.index[0] : end.index[0]]
我认为您的start
和end
是单期系列。
答案 1 :(得分:1)
您需要访问单行Series
内的标量值并将其传递给loc
以对df进行切片:
data.loc[start.index[0] : end.index[0]]