Python 按索引和整数显示数据帧

Python 按索引和整数显示数据帧,python,pandas,Python,Pandas,所以我有一个按日期索引的熊猫数据框 我需要按日期从数据框中获取一个值…然后从前一天的数据框中获取值…除非我不能只减去一天,因为数据中缺少周末和假日 如果我能写下: x = dataframe.ix[date] 及 我不赞成这个解决方案。如果有一种方法可以使日期或索引号正好比我知道的日期早一个,我会很高兴…(除了循环整个数据帧和测试以查看是否匹配,并保存计数…)用于获取索引中标签值的整数位置: In [51]: df = pd.DataFrame(index=pd.date_range(star

所以我有一个按日期索引的熊猫数据框

我需要按日期从数据框中获取一个值…然后从前一天的数据框中获取值…除非我不能只减去一天,因为数据中缺少周末和假日

如果我能写下:

x = dataframe.ix[date]

我不赞成这个解决方案。如果有一种方法可以使日期或索引号正好比我知道的日期早一个,我会很高兴…(除了循环整个数据帧和测试以查看是否匹配,并保存计数…)

用于获取索引中标签值的整数位置:

In [51]:
df = pd.DataFrame(index=pd.date_range(start=dt.datetime(2015,1,1), end=dt.datetime(2015,2,1)), data={'a':np.arange(32)})
df

Out[51]:
             a
2015-01-01   0
2015-01-02   1
2015-01-03   2
2015-01-04   3
2015-01-05   4
2015-01-06   5
2015-01-07   6
2015-01-08   7
2015-01-09   8
2015-01-10   9
2015-01-11  10
2015-01-12  11
2015-01-13  12
2015-01-14  13
2015-01-15  14
2015-01-16  15
2015-01-17  16
2015-01-18  17
2015-01-19  18
2015-01-20  19
2015-01-21  20
2015-01-22  21
2015-01-23  22
2015-01-24  23
2015-01-25  24
2015-01-26  25
2015-01-27  26
2015-01-28  27
2015-01-29  28
2015-01-30  29
2015-01-31  30
2015-02-01  31
此处使用索引上的
.get_loc
将返回序号位置:

In [52]:    
df.index.get_loc('2015-01-10')

Out[52]:
9
In [53]:    
df.iloc[df.index.get_loc('2015-01-10')]

Out[53]:
a    9
Name: 2015-01-10 00:00:00, dtype: int32
使用
.iloc
传递此值以按顺序位置获取行值:

In [52]:    
df.index.get_loc('2015-01-10')

Out[52]:
9
In [53]:    
df.iloc[df.index.get_loc('2015-01-10')]

Out[53]:
a    9
Name: 2015-01-10 00:00:00, dtype: int32
然后可以从中减去
1
,得到上一行:

In [54]:     
df.iloc[df.index.get_loc('2015-01-10') - 1]

Out[54]:
a    8
Name: 2015-01-09 00:00:00, dtype: int32