获取 pandas 日期时间索引的先前值 [英] get previous value of pandas datetime index

查看:60
本文介绍了获取 pandas 日期时间索引的先前值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有日期时间索引的熊猫数据框

I have a pandas dataframe with datetime index

Date
2013-02-22 00:00:00+00:00    0.280001
2013-02-25 00:00:00+00:00    0.109999
2013-02-26 00:00:00+00:00   -0.150000
2013-02-27 00:00:00+00:00    0.130001
2013-02-28 00:00:00+00:00    0.139999
Name: MOM12

,并希望评估给定日期时间索引的前三个值.

and want to evaluate the previous three values of the given datetime index.

date = "2013-02-27 00:00:00+00:00"
df.ix[date]

我搜索了此内容,但由于我的索引是一个我不能做的日期

I searched for this but since my index is a date I can't do

df.ix[int-1]

推荐答案

这里是一种方法,首先通过get_loc来获取索引键的整数位置:

Here's one way to do it, first grab the integer location of the index key via get_loc:

In [15]: t = pd.Timestamp("2013-02-27 00:00:00+00:00")

In [16]: df1.index.get_loc(t)
Out[16]: 3

然后您可以使用iloc(获取整数位置或按整数位置切片):

And then you can use iloc (to get the integer location, or slice by integer location):

In [17]: loc = df1.index.get_loc(t)

In [18]: df.iloc[loc - 1]
Out[18]: 
Date    2013-02-26 00:00:00
                      -0.15
Name: 2, Dtype: object

In [19]: df1.iloc[slice(max(0, loc-3), min(loc, len(df)))]
        # the min and max feel slightly hacky (!) but needed incase it's within top or bottom 3
Out[19]:                         
Date                    
2013-02-22  0.280001
2013-02-25  0.109999
2013-02-26 -0.150000

请参阅文档的索引部分.

我不太确定如何设置DataFrame,但这对我来说似乎不像是Datetime索引.这是我获得DataFrame(带有Timestamp索引)的方法:

I'm not quite sure how you set up your DataFrame, but that doesn't look like a Datetime Index to me. Here's how I got the DataFrame (with Timestamp index):

In [11]: df = pd.read_clipboard(sep='\s\s+', header=None, parse_dates=[0], names=['Date', None])

In [12]: df
Out[12]: 
                 Date          
0 2013-02-22 00:00:00  0.280001
1 2013-02-25 00:00:00  0.109999
2 2013-02-26 00:00:00 -0.150000
3 2013-02-27 00:00:00  0.130001
4 2013-02-28 00:00:00  0.139999

In [13]: df1 = df.set_index('Date')

In [14]: df1
Out[14]:                
Date                
2013-02-22  0.280001
2013-02-25  0.109999
2013-02-26 -0.150000
2013-02-27  0.130001
2013-02-28  0.139999

这篇关于获取 pandas 日期时间索引的先前值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆