考虑pd.Series
s
import pandas as pd
import numpy as np
tidx = pd.date_range('2012-12-31', periods=261)
s = pd.Series(np.arange(len(tidx)), tidx)
假设我希望获得一个以期限'2013-02-22'
我希望结果是
2013-02-09 40
2013-02-10 41
2013-02-11 42
2013-02-12 43
2013-02-13 44
2013-02-14 45
2013-02-15 46
2013-02-16 47
2013-02-17 48
2013-02-18 49
2013-02-19 50
2013-02-20 51
2013-02-21 52
2013-02-22 53
Freq: D, dtype: int32
答案 0 :(得分:2)
致avoid chained indexing,
您可以使用s.index.get_loc
查找与2013-02-22
关联的位置索引,并使用iloc
和位置索引进行选择:
In [93]: i = s.index.get_loc('2013-02-22')+1; s.iloc[i-14:i]
Out[93]:
2013-02-09 40
2013-02-10 41
2013-02-11 42
2013-02-12 43
2013-02-13 44
2013-02-14 45
2013-02-15 46
2013-02-16 47
2013-02-17 48
2013-02-18 49
2013-02-19 50
2013-02-20 51
2013-02-21 52
2013-02-22 53
Freq: D, dtype: int64
答案 1 :(得分:1)
In [12]: s.ix[:'2013-02-22'].iloc[-14:]
Out[12]:
2013-02-09 40
2013-02-10 41
2013-02-11 42
2013-02-12 43
2013-02-13 44
2013-02-14 45
2013-02-15 46
2013-02-16 47
2013-02-17 48
2013-02-18 49
2013-02-19 50
2013-02-20 51
2013-02-21 52
2013-02-22 53
Freq: D, dtype: int32