用枢轴来回迭代Pandas中的DateTimeIndex

时间:2015-02-24 14:36:33

标签: python pandas

将Yahoo Finance中的Timeseries数据下载到以DataTimeIndex作为索引的pandas DataFrame并使用for循环迭代数据集后,我正在寻找以整数步骤来回的构造,即如下所示构建的日期索引星期五有2天的差距,其他工作日有1天。

for i in pd.MyDataFrame.index[1:]:
     print(MyDataFrame[i-1])  or i-2 or i+2 above

因此允许我在识别DF中的枢轴行后来回走动。 它不允许整数减法

由于

1 个答案:

答案 0 :(得分:0)

不清楚您的确切需求,但以下内容演示了如何使用iloc来实现您的目标:

In [206]:

df = pd.DataFrame({'row': np.arange(10), 'value':np.random.randn(10)})
df
Out[206]:
   row     value
0    0  1.183865
1    1 -0.206004
2    2 -0.251152
3    3 -0.246940
4    4 -0.898938
5    5 -0.278680
6    6 -0.658099
7    7  2.007017
8    8 -2.304950
9    9  0.599819
In [211]:

for i in range(len(df)):
    print("row", df.iloc[i]['row'], "value: ", df.iloc[i]['value'])
    if i != 0 and i%3 == 0:
        print("prev -2 row: ", df.iloc[i-2]['row'], "value: ", df.iloc[i-2]['value'])
row 0.0 value:  1.18386492781
row 1.0 value:  -0.206003776639
row 2.0 value:  -0.251152226938
row 3.0 value:  -0.246940111559
prev -2 row:  1.0 value:  -0.206003776639
row 4.0 value:  -0.898938240373
row 5.0 value:  -0.278680105208
row 6.0 value:  -0.658099354022
prev -2 row:  4.0 value:  -0.898938240373
row 7.0 value:  2.00701698585
row 8.0 value:  -2.30495039859
row 9.0 value:  0.599819374456
prev -2 row:  7.0 value:  2.00701698585