2015-02-24 63 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

相關問題