2015-02-24 95 views
0

从Yahoo Finance将Timeseries数据下载到以DataTimeIndex为索引的pandas DataFrame中,并在使用for循环迭代数据集时,我正在寻找以整数来回构造的结构步骤如下:在已建成的日期索引中,星期五为2天或其他工作日为1天。以Pandas为中心迭代访问DateTimeIndex

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

因此让我来回走在DF识别枢轴一行之后。 它不允许整数减法

感谢

+0

你有没有看着['ILOC '](http://pandas.pydata.org/pandas-docs/stable/indexing.html#selection-by-position)? – EdChum 2015-02-24 14:44:11

回答

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 
+0

感谢上面,如果我这样做的方式则是什么语言结构将帮助我从DateTimeIndex获得日期说在ILOC [I-2] Ineed日期和的rowid – 2015-02-24 17:00:31

+0

你的意思是索引值?你可以通过'name'属性访问索引值,因此你可以调用'print(“index:”,df.iloc [i] .name)' – EdChum 2015-02-24 17:02:51

+0

非常感谢Ed.It! – 2015-02-24 17:05:26

相关问题